我有一个简单的GUI,可以绘制如下图:
def display_graph(self,f1):
self.canvas = FigureCanvasTkAgg(f1, self)
self.canvas.show()
self.canvas.get_tk_widget().place(anchor = N ,x = 200 ,y= 150)
self.get_all_figures()
self.canvas._tkcanvas.place(anchor = N ,x = 675 ,y= 325)
self.toolbar_frame = Frame(self)
toolbar = NavigationToolbar2TkAgg(self.canvas, self.toolbar_frame)
self.toolbar_frame.place(anchor = N ,x = 540 ,y= 933)
有一些像xlabel,ylabel这样的文本,用户应该能够以pdf格式导出。为了处理图形,如果显示的文本也是例如Illustrator中的文本对象,那将是很好的,但它被识别为路径。 (没有字体信息)。
我更改了pyl.rcParams['pdf.fonttype'] = 42
但它只在我直接从控制台绘图时才起作用。
有没有一个技巧可以使用画布从GUI中实现?
要保存图像,我想使用工具栏和此功能(取决于用户点击的内容)
def save_all(figures,save_path_name,curr = 'all'):
try:
pp = PdfPages(save_path_name)
if curr == 'last':
pp.savefig(figures[-1])
else:
for i in figures:
pp.savefig(i)
pp.close()
except (OSError, IOError) as e:
messagebox.showinfo('Error ...',e)
return
答案 0 :(得分:0)
这就是诀窍。在绘制任何图形之前,每次都会基本更新。但即使我在rc文件中更改,我也无法使其正常工作。很奇怪也许我在监督一些事情。
def display_graph(self,f1):
plt.rcParams['pdf.fonttype'] = 42
matplotlib.rcParams['pdf.fonttype'] = 42
self.canvas = FigureCanvasTkAgg(f1, self)
self.canvas.show()
self.canvas.get_tk_widget().place(anchor = N ,x = 200 ,y= 150)
self.get_all_figures()
self.canvas._tkcanvas.place(anchor = N ,x = 675 ,y= 325)
self.toolbar_frame = Frame(self)
toolbar = NavigationToolbar2TkAgg(self.canvas, self.toolbar_frame)
self.toolbar_frame.place(anchor = N ,x = 540 ,y= 933)