Matplotlib子批大小不相等
我使用子图来显示一些图形,但是标签与最后一个子图混合在一起,所以图的大小不一样。前5个不是完美的圆 这是我的密码:Matplotlib子批大小不相等,matplotlib,graph,machine-learning,jupyter-notebook,data-analysis,Matplotlib,Graph,Machine Learning,Jupyter Notebook,Data Analysis,我使用子图来显示一些图形,但是标签与最后一个子图混合在一起,所以图的大小不一样。前5个不是完美的圆 这是我的密码: for i in range(6): plt.subplot(231 + i) plt.title("Department " + depts[i]) labels = ['Male', 'Female'] colors = ['#3498DB', '#E74C3C'] sizes = [male_accept_rates[i] / (mal
for i in range(6):
plt.subplot(231 + i)
plt.title("Department " + depts[i])
labels = ['Male', 'Female']
colors = ['#3498DB', '#E74C3C']
sizes = [male_accept_rates[i] / (male_accept_rates[i] + female_accept_rates[i]),
female_accept_rates[i] / (male_accept_rates[i] + female_accept_rates[i])]
patches, texts = plt.pie(sizes, colors=colors, startangle=90)
plt.axis('equal')
plt.tight_layout()
plt.legend(labels, loc="best")
plt.show()
以下是输出:
谁能给我一些建议吗?非常感谢。看起来plt.axis('equal')
仅适用于最后一个子批次。因此,您的解决方案是将这行代码放入循环中
因此:
现在生成以下内容:
我只想问一个后续问题,标签放在最后一个馅饼上,这不是我想要的。有没有办法把标签放在别的地方?谢谢。是的,默认情况下,将为最新的子批次绘制图例。为了得到一组子图的一个图例,我想看看这里:我尝试了这些解决方案,但它们对我来说并不完美,但我的matplotlib版本有点不同。他们可能为你工作。
import numpy as np
import matplotlib.pyplot as plt
depts = 'abcdefg'
male_accept_rates = np.array([ 2, 3, 2, 3, 4, 5], float)
female_accept_rates= np.array([ 3, 3, 4, 3, 2, 4], float)
for i in range(6):
plt.subplot(231 + i)
plt.title("Department " + depts[i])
labels = ['Male', 'Female']
colors = ['#3498DB', '#E74C3C']
sizes = [male_accept_rates[i] / (male_accept_rates[i] + female_accept_rates[i]),
female_accept_rates[i] / (male_accept_rates[i] + female_accept_rates[i])]
patches, texts = plt.pie(sizes, colors=colors, startangle=90)
plt.axis('equal')
plt.tight_layout()
plt.legend(labels, loc="best")
plt.show()