使用matplotlib并排绘制图表

时间:2018-08-15 21:22:33

标签: python matplotlib data-visualization

我正在尝试在python中使用matplotlib并排绘制两个甜甜圈图。

首先,我使用以下逻辑创建甜甜圈图:

  1. 创建一个简单的饼图;
  2. 使用add_axes函数为图表选择一个位置;
  3. 添加一个补丁(其中有一个白色圆圈,因此看起来像一个甜甜圈图);
  4. 在屏幕上显示并排图表。

    fig= plt.figure()
    circle1 = plt.Circle((0,0), radius= .7 ,color='white')
    
    ax1= fig.add_axes([0,0,1,1],aspect=1)
    ax1.pie(x= values, labels= KA, startangle=30,radius=1.2)
    ax1.add_patch(circle1)
    
    circle2 = plt.Circle((0,0), radius= .7 ,color='white')
    ax2 = fig.add_axes([1,0,1,1],aspect=1)
    ax2.pie(x=values2, explode=explode, labels=KA2,startangle=30,radius=1.2)
    ax2.add_patch(circle2)
    
    plt.show()
    

当运行功能plt.show()时,它仅显示第一个甜甜圈图,并具有非常大的缩放比例...

让我抓狂的是事实,如果我运行以下功能: plt.savefig('testplot.png',bbox_inches='tight') 就像我想要的那样保存了png文件...

如何在plt.show()

上执行此操作

1 个答案:

答案 0 :(得分:1)

在图形外部创建第二个轴。该图在两个方向上从0变为1。如果将第二个轴从位置1开始,它将从1变到2,这在显示的图形之外。

要么使用子图

fig, (ax1, ax2) = plt.subplots(subplot_kw={"aspect" : 1})

或在图形边界内创建轴,

ax1 = fig.add_axes([0,0,0.45,1], aspect=1)
ax2 = fig.add_axes([0.55,0,0.45,1], aspect=1)