Python Matplotlib在两侧添加空白
我正在做一个情节,上面有一个非常大的图例,这是最后一个例子 由于图例的字体大小必须非常大,因此图例的左右两侧都会被裁剪 我想做的是在我的图片的左边和右边添加一些额外的空白,以便让图例适合。更正式地说,过程必须是这样的:Python Matplotlib在两侧添加空白,python,matplotlib,plot,data-visualization,Python,Matplotlib,Plot,Data Visualization,我正在做一个情节,上面有一个非常大的图例,这是最后一个例子 由于图例的字体大小必须非常大,因此图例的左右两侧都会被裁剪 我想做的是在我的图片的左边和右边添加一些额外的空白,以便让图例适合。更正式地说,过程必须是这样的: 从一个没有图例的图开始,figsize=(8,8)。这当然不是问题 在左侧和右侧添加一些额外的空格。这将使figsize成为矩形,例如(12,8)。初始绘图必须位于中心,并呈正方形这是关键点 在绘图上添加水平图例,该图例现在不会被裁剪,因为figsize在两侧有更多的空间 为了解
- 使用
选项fig.tight_layout()
和pad
,正如本文所建议的那样,但它对我不起作用rect
- 我可以按照这条建议去做,但它不符合我的需要,因为我不能减小图例的字体大小,也不能改变figsize的初始大小,否则起始图将看起来是矩形而不是正方形
- 我曾尝试使用
,但问题仍然存在子地块调整(w\u空格)
fig,ax=plt.子批次(1,1,figsize=(10,10))
ax.绘图(范围(5)、范围(0,20,4)、标签=“pippo”)
ax.绘图(范围(5)、范围(0,25,5)、标签=“pappo”)
ax.绘图(范围(5)、范围(0,25,5)、标签=“tp”)
ax.绘图(范围(5)、范围(0,25,5)、label=“minni”)
ax.绘图(范围(5)、范围(0,25,5)、标签=“冥王星”)
ax.绘图(范围(5)、范围(0,25,5)、标签=“paperino”)
ax.绘图(范围(5)、范围(0,25,5)、标签=“chicho”)
ax.绘图(范围(5)、范围(0,25,5)、标签=“mela”)
ax.绘图(范围(5)、范围(0,25,5)、标签=“pera”)
ax.绘图(范围(5)、范围(0,25,5)、标签=“香蕉”)
#在底部将当前轴的高度缩小10%
box=ax.get_位置()
最大设置位置([box.x0,box.y0-box.height*0.1,
box.width,box.height*0.9])
#在当前轴下方放置图例
ax.图例(loc='上中',bbox_至_锚=(0.5,1.2),
fancybox=True,shadow=True,ncol=10,prop={'size':32})
图savefig(“检查”)
什么是ax\u sub?在任何情况下,如果最初的图形具有10%的边距(m=0.1
)和宽度w
,然后通过系数x
,neww=x*w
,更改图形宽度,则新的边距需要为newm=0.5-(1-2*m)/(2*x)
。然后plt.subplot\u adjust(left=newm,right=1-newm)
设置此新边距。这是一个复制粘贴错误。我决定改变这个过程。我从一个大的矩形图开始,然后用plt缩小图像。子图\u调整(左=newm,右=1-newm)
。这样,就有了足够的空间来放置图例,当衬衫被遮住时,图像从矩形变为正方形。不幸的是plt.subplot\u adjust(left=newm,right=1-newm)
shrinks与增大的体形尺寸相比,不收缩图像您想做什么?因此,上述内容实际上应该满足您的需要。(问题中的代码为“否”,因此我无法在此给出完整的工作答案。)