这是可以帮助我在python上画图的线。
packing_options [best_index] .plot_sheets()
这是它在python上的外观。这是图形的图片。 https://imgur.com/a/fRczosW
现在,我正在尝试tkinter。我希望图弹出。我怎样才能做到这一点 ?
window = tk.Tk()
packing_options[best_index].plot_sheets()
window.mainloop()
我尝试过了。但是没用。
编辑: 因此,“ matplotlib将在有人评论时使用。 这是代码:
def plot_sheet(self):
fig,ax = plt.subplots(1)
ax.set_xlim([0, self.W])
ax.set_ylim([0, self.L])
recs = []
for i in range(len(self.rect_list)):
if self.rect_rotate[i]:
ax.add_patch(patches.Rectangle((self.rect_pos[i][0], self.rect_pos[i][1]), self.rect_list[i].l, self.rect_list[i].w,linewidth=3,edgecolor='r'))
else:
ax.add_patch(patches.Rectangle((self.rect_pos[i][0], self.rect_pos[i][1]), self.rect_list[i].w, self.rect_list[i].l,linewidth=3,edgecolor='r'))
plt.show()
def plot_sheets(self):
for i in range(len(self.sheets)):
self.sheets[i].plot_sheet()
这是绘图代码。 packing_options [best_index]在这里也是一个函数。由于有一个循环,它绘制了10到20个图。 如何在此处应用matplotlib后端?
答案 0 :(得分:1)
我无法运行它,但是它可能像这样
import matplotlib
matplotlib.use('TkAgg')
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import matplotlib.pyplot as plt
import tkinter as tk
class YourClass():
def plot_sheet(self):
fig,ax = plt.subplots(1)
ax.set_xlim([0, self.W])
ax.set_ylim([0, self.L])
recs = []
for i in range(len(self.rect_list)):
if self.rect_rotate[i]:
ax.add_patch(patches.Rectangle((self.rect_pos[i][0], self.rect_pos[i][1]), self.rect_list[i].l, self.rect_list[i].w,linewidth=3,edgecolor='r'))
else:
ax.add_patch(patches.Rectangle((self.rect_pos[i][0], self.rect_pos[i][1]), self.rect_list[i].w, self.rect_list[i].l,linewidth=3,edgecolor='r'))
#plt.show()
return fig
#--- main ---
window = tk.Tk()
packing_options = [YourClass(), YourClass(), YourClass()]
best_index = 0
fig = packing_options[best_index].plot_sheets()
dataPlot = FigureCanvasTkAgg(fig, master=master)
dataPlot.show()
dataPlot.get_tk_widget().pack(side='top', fill='both', expand=1)
window.mainloop()