matplotlib保存图片尺寸变了,matplotlib subplot大小

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: