私はx軸の値がバーのラベルと正しく相関するようには見えないという点で、Seaborn/matplotlibを使用すると簡単な問題が発生しています。私はこの次のコードを使用してグラフ化する場合matplotlib x軸の開始点を設定する方法は?
hypothesis1_df:
revol_util deviation
20 20 -37.978539
21 21 -27.313996
22 22 -23.790328
23 23 -19.729957
24 24 -16.115686
.. ... ...
96 96 67.275585
97 97 91.489382
98 98 60.967792
99 99 48.385094
100 100 77.852812
が今の問題は次のとおりです。参考のため、私のようなものを私に残し、pandas.DataFrame
オブジェクトを持っていたし、データのより詳細な表情を見せた最初の20行を落としました。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
ax = sns.barplot(x='revol_util', y='deviation', data=hypothesis1_df)
ax.set(xlabel="Revolving Credit Utilization (%)",
ylabel="Deviation from Mean (%)",
title="Credit Utilization and Likelihood of Late Payments\n(20 - 100%)")
ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%d')) # Format axis ticks as int
ax.xaxis.set_major_locator(ticker.MultipleLocator(base=10)) # Set tick label frequency = base
plt.show()
私はこの取得:
注x軸の値を、どのように彼らは20から始まるいないがトンですここでティッカーを相殺する方法はありますか?私はax.set_xlim(xmin=20, xmax=100)
を試しましたが、それは私のグラフの下部20を切り落とし、20を右側に広げて空白にします。すべての軸の書式設定を削除すると、ラベルは正しく表示されますが、すべてのラベルがリストされているので、あまりにも多忙です。助けてくれてありがとう。
残念ながらそれは均等に 'MultipleLocator'で使用した場合であるとして、範囲21-29に広がり、私は' MultipleLocator'ラインを削除して、それをしようとした場合ラベルが私を与えるように思われます範囲内のすべての値になります(読み取るにはビジー状態です)。 'ax.set_xticklabels(np.arange(20、100、10)'を使うと、ラベルが与えられますが、最初の8個に割り当てられ、残りの部分は空白になります。 – Brendan
'AxLの後に' MultipleLocator'行を呼び出してみましたか? set_xticklabels(仮説1_df.index.tolist()) '行? –