8

Python で pandas を使用して CSV からデータを読み取って、棒グラフをプロットしています。CSV を a に読み込み、DataFramematplotlib を使用してプロットします。

私のCSVは次のようになります。

SegmentName    Sample1   Sample2   Sample3

Loop1          100       100       100

Loop2          100       100       100

res = DataFrame(pd.read_csv("results.csv", index_col="SegmentName"))

凡例を外側にプロットして設定します。

plt.figure()
ax = res.plot(kind='bar')
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))

plt.savefig("results.jpg")

ただし、x 軸の目盛りラベルは垂直方向に配置されているため、テキストを読むことができません。また、外での私の伝説は途絶えています。

目盛りラベルの向きを水平に変更してから、図全体を調整して凡例が表示されるようにすることはできますか?

ここに画像の説明を入力

4

3 に答える 3

10

ラベルを設定するときに「rotation」キーワードを使用してみてください。例えば:

plt.xlabel('hi',rotation=90)

または、目盛りラベルを回転させる必要がある場合は、次を試してください。

plt.xticks(rotation=90)

凡例などの配置については、タイトなレイアウト ガイドを参照してください。

于 2013-08-07T08:45:36.257 に答える
5

rotラベルの回転については、引数に度数を指定することで、ラベルを回転するように pandas に指示するだけです。切り捨てられた伝説は、次のように他の場所でも回答されています

df = pd.DataFrame.from_items([('A', [1, 2, 3]), ('B', [4, 5, 6])],
                              orient='index', columns=['one', 'two', 'three'])
ax = df.plot(kind='bar', rot=90)
lgd = ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
fig.savefig("results.jpg", bbox_extra_artists=(lgd,), bbox_inches='tight')
于 2016-09-21T13:42:11.953 に答える
4

matplotlibAPI を使用して、次のax.set_xticklabels(res.index, rotation=0)ように呼び出す必要があります。

index = Index(['loop1', 'loop2'], name='segment_name')
data = [[100] * 3, [100] * 3]
columns = ['sample1', 'sample2', 'sample3']
df = DataFrame(data, index=index, columns=columns)

fig, ax = subplots()
df.plot(ax=ax, kind='bar', legend=False)
ax.set_xticklabels(df.index, rotation=0)
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
fig.savefig('results.png', bbox_inches='tight')

結果のプロットを取得するには:

ここに画像の説明を入力

別の方法として、素敵な傾斜効果を呼び出すこともできますfig.autofmt_xdate()。これはもちろん、上記 (およびより一般的な) をいじることができますax.set_xticklabels()

fig, ax = subplots()
df.plot(ax=ax, kind='bar', legend=False)
fig.autofmt_xdate()
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
fig.savefig('results-tilted.png', bbox_inches='tight')

ここに画像の説明を入力

于 2013-08-14T17:59:16.310 に答える