0

matplotlib と Python で円グラフでクリックされた値/ラベルを返す方法はありますか? たとえば、ユーザーが円グラフのスライバー A をクリックすると、値 A が返されます。ユーザーが B 円グラフのスライバー B をクリックすると、値 B が返されます。

4

2 に答える 2

4
from matplotlib import pyplot as plt
# make a square figure and axes
plt.figure(figsize=(6,6))
ax = plt.axes([0.1, 0.1, 0.8, 0.8])

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15,30,45, 10]

explode=(0, 0.05, 0, 0)
p = plt.pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
plt.title('Raining Hogs and Dogs', bbox={'facecolor':'0.8', 'pad':5})

w = p[0][0]
plt.show() 

class PieEventHandler:
    def __init__(self,p):
        self.p = p
        self.fig = p[0].figure
        self.ax = p[0].axes
        self.fig.canvas.mpl_connect('button_press_event', self.onpress)

    def onpress(self, event):
        if event.inaxes!=self.ax:
            return

        for w in self.p:
            (hit,_) = w.contains(event)
            if hit:
                print w.get_label()


handler = PieEventHandler(p[0])

参照:

matplotlibのimshowの色の値?

http://matplotlib.org/examples/pylab_examples/pie_demo.html

于 2012-09-27T15:03:58.217 に答える