我正在尝试使用DF在绘图中创建一个饼图。但是我的所有饼图都不是实际的圆形,但前两个是椭圆形的。请指导我如何制作相同大小和圆形的所有子图。 我正在使用的代码如下所示
fig = plt.figure()
ax1 = plt.subplot(131)
ax2 = plt.subplot(132)
ax3 = plt.subplot(133)
ax1 = test1_pie.plot(kind='pie',y=test1,ax =ax1)
plt.axis('equal')
ax2 = test2_pie.plot(kind='pie',y=test2,ax=ax2)
plt.axis('equal')
ax3 = test3_pie.plot(kind='pie',y=test3,ax=ax3)
plt.axis('equal')
答案 0 :(得分:0)
混合状态机pyplot
调用和普通轴方法调用是个坏主意。这是原因的典型例子。
plt.<whatever>
将引用最后创建的轴。你只是在最后一个轴对象上调用axis('equal')
。
最好坚持使用普通的axis-method api。
例如:
fig = plt.figure()
ax1 = plt.subplot(131)
ax2 = plt.subplot(132)
ax3 = plt.subplot(133)
ax1 = test1_pie.plot(kind='pie', y=test1, ax=ax1)
ax1.axis('equal')
ax2 = test2_pie.plot(kind='pie', y=test2, ax=ax2)
ax2.axis('equal')
ax3 = test3_pie.plot(kind='pie', y=test3, ax=ax3)
ax3.axis('equal')
作为一个独立的例子:
import numpy as np
import matplotlib.pyplot as plt
fig, axes = plt.subplots(ncols=3)
for ax in axes:
x = np.random.random(np.random.randint(3, 6))
ax.pie(x)
ax.axis('equal')
plt.show()