鱼C论坛

 找回密码
 立即注册
查看: 2581|回复: 4

[已解决]如何调整matplotlib生成的图片的大小?

[复制链接]
发表于 2020-7-15 21:20:02 | 显示全部楼层 |阅读模式
20鱼币
本帖最后由 flyps 于 2020-7-16 09:24 编辑
  1. import math
  2. import numpy as np   
  3. #-------------------------------------------------------------------------------------------
  4. import matplotlib
  5. import matplotlib.pyplot as plt
  6. from matplotlib.pylab import mpl
  7. from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,NavigationToolbar2Tk #NavigationToolbar2TkAgg
  8. #------------------------------------------------------------------------------------------
  9. import tkinter as tk

  10. root = tk.Tk()
  11. root.geometry('1200x600')

  12. left_frame = tk.LabelFrame(root,height=600,width=600)
  13. left_frame.grid(row=0,column=0,padx=0,pady=0,sticky=tk.W)
  14. left_frame.grid_propagate(0)
  15. right_frame = tk.LabelFrame(root,height=600,width=600)
  16. right_frame.grid(row=0,column=1,padx=0,pady=0,sticky=tk.E)
  17. right_frame.grid_propagate(0)

  18. tk.Label(left_frame,text='测试').grid()

  19. f=plt.figure(num=3,figsize=(6,6))
  20. x = np.linspace(-3,3,50)
  21. y1 = 2*x+1
  22. y2 = x**2

  23. l1, = plt.plot(x,y2,label='up')
  24. l2, = plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='down')
  25. #plt.legend(handles=[l1,l2],labels=['aaa','bbb'],loc='best')

  26. canvas=FigureCanvasTkAgg(f,right_frame)
  27. canvas.draw()  #以前的版本使用show()方法,matplotlib 2.2之后不再推荐show()用draw代替,但是用show不会报错,会显示警告self.canvas.get_tk_widget().grid(row=0,column=0,columnspan=2,sticky=tk.EWSN)
  28. canvas.get_tk_widget().grid(row=0,column=0,sticky=tk.E)

  29. tk.mainloop()
复制代码


20200715211601.png

我需要红色部分填满right_frame,红色周边白色的不要显示,谢谢

加多下面的代码就解决了
plt.subplots_adjust(left=0.03, right=1, top=1, bottom=0.1)
最佳答案
2020-7-15 21:20:03
有点没看懂你说的,你是想背景为红色是嘛,除了图片内?

最佳答案

查看完整内容

有点没看懂你说的,你是想背景为红色是嘛,除了图片内?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-15 21:20:03 | 显示全部楼层    本楼为最佳答案   
有点没看懂你说的,你是想背景为红色是嘛,除了图片内?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-15 22:25:00 | 显示全部楼层
Twilight6 发表于 2020-7-15 21:26
有点没看懂你说的,你是想背景为红色是嘛,除了图片内?

不好意思,没有说清楚。

canvas对象是除了红方形的图案,还有红方形四周的空白部分,我是希望right_frame只显示红方形内的图案,而红方形四周白色是没有的,那可以说把红方形内的图案居中放大
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-15 22:44:43 | 显示全部楼层
flyps 发表于 2020-7-15 22:25
不好意思,没有说清楚。

canvas对象是除了红方形的图案,还有红方形四周的空白部分,我是希望right_fr ...

研究半天,没研究出猫腻,用 plt.axis("off") 方法会把坐标也隐藏了...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-16 07:39:42 | 显示全部楼层
Twilight6 发表于 2020-7-15 22:44
研究半天,没研究出猫腻,用 plt.axis("off") 方法会把坐标也隐藏了...

谢谢,但我不是要隐藏坐标,我是要只显示红色方框内的图案,红框外面部分去掉,即是让红色方框内的图案填满整个right_frame
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-23 17:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表