透视图空

2024-10-02 14:21:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在matplot lib中创建了一个piechart,当我使用plt.show()显示它时,它将正确显示。但当我想把它添加到我的tkinter帧时,它将显示一个空的绘图。在

labels = [r'Rayos X (88.4 %)', r'RMN en solucion (10.6 %)', r'Microscopia electronica (0.7 %)', r'Otros (0.3 %)']
sizes = [88.4, 10.6, 0.7, 0.3]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
patches, texts = plt.pie(sizes, colors=colors, startangle=90)
plt.legend(patches, labels, loc="best")
# Set aspect ratio to be equal so that pie is drawn as a circle.
plt.axis('equal')
plt.tight_layout()
# plt.show()

fig = plt.figure()
canvas = FigureCanvasTkAgg(fig, master=self)
canvas.show()
canvas.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)
canvas.get_tk_widget().place(x=0, y=40, width=800, height=560)
canvas.get_tk_widget().configure(background='lightgray', highlightcolor='lightgray', highlightbackground='lightgray')

Tags: getlabelsshowfigpltequalwidgettk
1条回答
网友
1楼 · 发布于 2024-10-02 14:21:23

在图形上创建饼图之前,需要向图形添加一个子图:

root = Tk.Tk()
root.wm_title("Pie Chart")

labels = [r'Rayos X (88.4 %)', r'RMN en solucion (10.6 %)', r'Microscopia electronica (0.7 %)', r'Otros (0.3 %)']
sizes = [88.4, 10.6, 0.7, 0.3]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']

fig = plt.figure()
piechart = fig.add_subplot(1, 1, 1)
patches, texts = piechart.pie(sizes, colors=colors, startangle=90, pctdistance=1)
piechart.legend(patches, labels, loc="best")
piechart.axis('equal')

canvas = FigureCanvasTkAgg(fig, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
Tk.mainloop()

相关问题 更多 >