Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib在两侧添加空白_Python_Matplotlib_Plot_Data Visualization - Fatal编程技术网

Python Matplotlib在两侧添加空白

Python Matplotlib在两侧添加空白,python,matplotlib,plot,data-visualization,Python,Matplotlib,Plot,Data Visualization,我正在做一个情节,上面有一个非常大的图例,这是最后一个例子 由于图例的字体大小必须非常大,因此图例的左右两侧都会被裁剪 我想做的是在我的图片的左边和右边添加一些额外的空白,以便让图例适合。更正式地说,过程必须是这样的: 从一个没有图例的图开始,figsize=(8,8)。这当然不是问题 在左侧和右侧添加一些额外的空格。这将使figsize成为矩形,例如(12,8)。初始绘图必须位于中心,并呈正方形这是关键点 在绘图上添加水平图例,该图例现在不会被裁剪,因为figsize在两侧有更多的空间 为了解

我正在做一个情节,上面有一个非常大的图例,这是最后一个例子

由于图例的字体大小必须非常大,因此图例的左右两侧都会被裁剪

我想做的是在我的图片的左边和右边添加一些额外的空白,以便让图例适合。更正式地说,过程必须是这样的:

  • 从一个没有图例的图开始,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与增大的体形尺寸相比,不收缩图像您想做什么?因此,上述内容实际上应该满足您的需要。(问题中的代码为“否”,因此我无法在此给出完整的工作答案。)