1

matplotlib を使用して描画した円グラフがあります。この円グラフの横にスライダーがあり、これを押すとハンドラーが呼び出されます。このハンドラーで円グラフの値を変更したいと思います。たとえば、円グラフにそれぞれ 60% と 40% のラベルがある場合、スライダーを押すと、ラベルを 90% と 10% に変更したいと思います。コードは次のとおりです。

これにより、円グラフとスライダーが描画されます。

plt.axis('equal');
explode = (0, 0, 0.1);
plt.pie(sizes, explode=explode, labels=underlyingPie, colors=colorOption,
        autopct='%1.1f%%', shadow=True, startangle=90)
plt.axis('equal')

a0 = 5;
axcolor = 'lightgoldenrodyellow'
aRisk  = axes([0.15, 0, 0.65, 0.03], axisbg=axcolor)
risk = Slider(aRisk, 'Risk', 0.1, 100.0, valinit=a0)
risk.on_changed(update);

以下はイベントハンドラーです。目的の機能は、ラベルを変更して円グラフを再描画することです

def update(val):
    riskPercent = risk.val;
    underlyingPie[0] = 10;
    underlyingPie[1] = 90;
    plt.pie(sizes, explode=explode, labels=lab, colors=colorOption,
        autopct='%1.1f%%', shadow=True, startangle=90)

下図も描いていますが、円グラフと下図の両方を同じキャンバスに表示できますか?

fig = plt.figure();
ax1 = fig.add_subplot(211);

for x,y  in zip(theListDates,theListReturns):
    ax1.plot(x,y);

plt.legend("title");
plt.ylabel("Y axis");
plt.xlabel("X axis");
plt.title("my graph");

前もって感謝します

4

1 に答える 1