web-dev-qa-db-ja.com

pandas円グラフのプロットは、くさびのラベルテキストを削除します

pandasプロットチュートリアル http://pandas.pydata.org/pandas-docs/version/0.15.0/visualization.html の円グラフの例は、以下を生成します図:

enter image description here

このコードで:

import matplotlib.pyplot as plt
plt.style.use('ggplot')
import numpy as np
np.random.seed(123456)


import pandas as pd
df = pd.DataFrame(3 * np.random.Rand(4, 2), index=['a', 'b', 'c', 'd'], columns=['x', 'y'])

f, axes = plt.subplots(1,2, figsize=(10,5))
for ax, col in Zip(axes, df.columns):
    df[col].plot(kind='pie', autopct='%.2f', labels=df.index,  ax=ax, title=col, fontsize=10)
    ax.legend(loc=3)

plt.show()

両方のサブプロットからテキストラベル(a、b、c、d)を削除したいのですが、私のアプリケーションではこれらのラベルが長いため、凡例でのみ表示したいのです。

これを読んだ後: 凡例をmatplotlib円グラフに追加する方法?matplotlib.pyplot.pieで方法を理解しましたが、まだggplotを使用している場合でも、図はそれほど豪華ではありません。

f, axes = plt.subplots(1,2, figsize=(10,5))
for ax, col in Zip(axes, df.columns):
    patches, text, _ = ax.pie(df[col].values, autopct='%.2f')
    ax.legend(patches, labels=df.index, loc='best')

enter image description here

私の質問は、私が望むものを両方から組み合わせることができる方法はありますか?明確にするために、私はパンダからの空想を求めていますが、ウェッジからテキストを削除しています。

ありがとうございました

17
fast tooth

グラフのラベルをオフにしてから、legendの呼び出し内でラベルを定義できます。

df[col].plot(kind='pie', autopct='%.2f', labels=['','','',''],  ax=ax, title=col, fontsize=10)
ax.legend(loc=3, labels=df.index)

または

... labels=None ...

enter image description here

28
iayork