鱼C论坛

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

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

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

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

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

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

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

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

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

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
有点没看懂你说的,你是想背景为红色是嘛,除了图片内?

最佳答案

查看完整内容

有点没看懂你说的,你是想背景为红色是嘛,除了图片内?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-15 21:20:03 | 显示全部楼层    本楼为最佳答案   
有点没看懂你说的,你是想背景为红色是嘛,除了图片内?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

不好意思,没有说清楚。

canvas对象是除了红方形的图案,还有红方形四周的空白部分,我是希望right_frame只显示红方形内的图案,而红方形四周白色是没有的,那可以说把红方形内的图案居中放大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

研究半天,没研究出猫腻,用 plt.axis("off") 方法会把坐标也隐藏了...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

谢谢,但我不是要隐藏坐标,我是要只显示红色方框内的图案,红框外面部分去掉,即是让红色方框内的图案填满整个right_frame
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 23:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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