matplotlib保存图片尺寸变了,matplotlib subplot大小
Matplotlib可以将许多图片放入一个显示界面中,因此面板被设计为被切割成子图片。下面文章主要介绍调整Matplotlib子图片大小的相关信息,通过示例代码非常详细的介绍。有需要的朋友可以参考一下。
00-1010简单的解题方法,麻烦点的总结。前段时间遇到这个问题,一直忘了写。今晚夜深人静我总结了一波~
目录
相信看了这篇博客的人一定会用Matplotlib中的pyplot来画图。
例如,如下图所示
你也应该可以调整单个图形的大小,就是用下面的语句来控制单个图形的大小,比如我这里设置的8*6的那个。
图3=plt.figure(figsize=(8,6))
但是随着进一步的学习,有时候我们有必要把两张图画在一起进行对比,所以你也应该可以在一张画布上画多个子图。例如,下面
也就是通过支线剧情。
#给我看数据
fig=plt.figure(figsize=(15,7))
图1=plt.subplot(231)
plt.scatter(data.loc[: Avg。地区收入],data.loc[:价格])
plt.title(“收入与价格”)
图2=plt.subplot(232)
plt.scatter(data.loc[: Avg。面积房龄],data.loc[:价格])
plt.title(“年龄与价格”)
图3=plt.subplot(233)
plt.scatter(data.loc[: Avg。房间面积],data.loc[:价格])
plt.title(“数量与价格”)
图4=plt.subplot(234)
plt.scatter(data.loc[:区域人口],data.loc[:价格])
plt.title(“人口与价格”)
图5=plt.subplot(235)
plt.scatter(data.loc[: size],data.loc[: Price])
plt.title(“尺寸与价格”)
plt.show()
画面到目前为止好像没什么问题,那么问题出在哪里?也就是说,当子图像较少时,整个图像可能会失真,从而导致以下图像。
显然,这不是我们所期望的,我们希望他不要伸出手来。不过好像直接用支线剧情画出来的子图大小不能变,网上给的一些方案比较麻烦。
问题
把这两个子图放在同一个画布中,这样子图就不能改变,但是外部画布大小可以改变,子图可以根据外部画布大小自适应显示。
对于这个数字
它的原始代码是
图6=plt.subplot(121)
label0=plt.scatter(X.loc[: V1 ][y _修正==0],X.loc[: V2 ][y _修正==0])
label1=plt.scatter(X.loc[: V1 ][y _修正==1],X.loc[: V2 ][y _修正==1])
label2=plt.scatter(X.loc[: V1 ][y _修正==2],X.loc[: V2 ][y _修正==2])
plt.title(“校正数据”)
plt.xlabel(V1 )
plt.ylabel(V2 )
plt.legend((标签0,标签1,标签2),(标签0 ,标签1 ,标签2 ))
plt.scatter(centers[:0],centers[:1])
图7=plt.subplot(122)
label0=plt.scatter(X.loc[: V1][y==0],X.loc[: V2][y==0])
label1=plt.scatter(X.loc[: V1][y==1],X.loc[: V2][y==1])
label2=plt.scatter(X.loc[: V1][y==2],X.loc[: V2][y==2])
plt.title(“标记数据”)
plt.xlabel(V1 )
plt.ylabel(V2 )
plt.legend((标签0,标签1,标签2),(标签0 ,标签1 ,标签2 ))
plt.scatter(centers[:0],centers[:1])
plt.show()
可以看到,fig6和fig7两个子图是直接用subplot得到的,所以是变形的。
修改后应该是这样的:
对应代码:
fig=plt.figure(figsize=(11,4))
图6=plt.subplot(121)
label0=plt.scatter(X.loc[: V1 ][y _修正==0],X.loc[: V2 ][y _修正==0])
label1=plt.scatter(X.loc[: V1 ][y _修正==1],X.loc[: V2 ][y _修正==1])
label2=plt.scatter(X.loc[: V1 ][y _修正==2],X.loc[: V2 ][y _修正==2])
plt.title(“校正数据”)
plt.xlabel(V1 )
plt.ylabel(V2 )
plt.legend((标签0,标签1,标签2),(标签0 ,标签1 ,标签2 ))
plt.scatter(centers[:0],centers[:1])
图7=plt.subplot(122)
label0=plt.scatter(X.loc[: V1][y==0],X.loc[: V2][y==0])
label1=plt.scatter(X.loc[: V1][y==1],X.loc[: V2][y==1])
label2=plt.scatter(X.loc[: V1][y==2],X.loc[: V2][y==2])
plt.title(“标记数据”)
plt.xlabel(V1 )
plt.ylabel(V2 )
plt.legend((标签0,标签1,标签2),(标签0 ,标签1 ,标签2 ))
plt.scatter(centers[:0],centers[:1])
plt.show()
与原代码相比,第一行的操作更多,通过设置合适的画布大小,可以方便地动态调整子图。
简便的解决方法
我在网上看到有一个自定义子图大小的方法,但是和我想出来的这个方法比起来,感觉太麻烦了。这个方法可以解决我这种问题。如果有问题需要大一点的子图和小一点的子图,单独记录。
麻烦点的方法
这就是这篇关于调整Matplotlib子图大小的文章。有关调整Matplotlib子图大小的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。