【问题标题】:Export matplotlib pdf with text not as path from tkinter导出 matplotlib pdf,文本不是来自 tkinter 的路径
【发布时间】:2016-11-17 13:40:20
【问题描述】:

我有一个简单的图形用户界面,可以绘制这样的图形:

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 

【问题讨论】:

  • 您在上面的代码中遗漏了最重要的部分,那就是如何保存图像?
  • 我想使用工具栏按钮将图像保存为 pdf 格式
  • @ImportanceOfBeingErnest 但实际上我也写了一个函数来保存所有生成的数字,我已经编辑了问题

标签: python pdf canvas matplotlib tkinter


【解决方案1】:

这可以解决问题。基本上每次在绘制任何图表之前都会更新。但我无法让它工作,即使我在 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)

【讨论】:

    猜你喜欢
    • 2017-11-24
    • 2020-05-15
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多