2015-11-08 25 views
2

我試圖在使用DF的圖中創建餅圖子圖。但是我所有的餅圖都不是實際的圓形圖,但是前兩個餅圖以橢圓形出現。請指導我如何製作所有尺寸和圓形相同的小區圖。 代碼,我使用下面在Python中創建圓形類型的餅圖子圖

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

嘗試用'pie'功能以及。還發佈一個完整的代碼來重現問題。 – Azad

+0

@Azad,使用特定的繪圖類型標記可能會產生比實際幫助更多的噪音。作爲一個經驗法則,我只會添加你可以想象人們實際選擇的標籤。 – cel

+0

@cel好的你是對的 – Azad

回答

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() 

enter image description here

+0

This works very well ..謝謝.. – MoChen