使用matplotlib的多个饼图

kev*_*sai 5 python numpy matplotlib

我正在尝试使用matplotlib同时显示两个图表.

但我必须关闭一个图表,然后才能看到另一个图表.无论如何都要同时显示图形或更多数量的图形.

这是我的代码

num_pass=np.size(data[0::,1].astype(np.float))
num_survive=np.sum(data[0::,1].astype(np.float))
prop=num_survive/num_pass
num_dead=num_pass-num_survive
#print num_dead


labels='Dead','Survived'
sizes=[num_dead,num_survive]
colors=['darkorange','green']
mp.axis('equal')
mp.title('Titanic Survival Chart')
mp.pie(sizes, explode=(0.02,0), labels=labels,colors=colors,autopct='%1.1f%%', shadow=True, startangle=90)
mp.show()

women_only_stats = data[0::,4] == "female" 
men_only_stats = data[0::,4] != "female" 

# Using the index from above we select the females and males separately
women_onboard = data[women_only_stats,1].astype(np.float)     
men_onboard = data[men_only_stats,1].astype(np.float)

labels='Men','Women'
sizes=[np.sum(women_onboard),np.sum(men_onboard)]
colors=['purple','red']
mp.axis('equal')
mp.title('People on board')
mp.pie(sizes, explode=(0.01,0), labels=labels,colors=colors,autopct='%1.1f%%', shadow=True, startangle=90)
mp.show()
Run Code Online (Sandbox Code Playgroud)

如何同时显示两个图形?

Ban*_*ana 11

有几种方法可以做到这一点,最简单的方法是使用多个图号.只需告诉matplotlib您正在处理单独的数字,然后同时显示它们:

import matplotlib.pyplot as plt

plt.figure(0)
# Create first chart here.

plt.figure(1)
# Create second chart here.

plt.show() #show all figures
Run Code Online (Sandbox Code Playgroud)


ali*_*i_m 8

除了Banana的答案,您还可以在同一图中的不同子图中绘制它们:

from matplotlib import pyplot as plt
import numpy as np

data1 = np.array([0.9, 0.1])
data2 = np.array([0.6, 0.4])

# create a figure with two subplots
fig, (ax1, ax2) = plt.subplots(1, 2)

# plot each pie chart in a separate subplot
ax1.pie(data1)
ax2.pie(data2)

plt.show()
Run Code Online (Sandbox Code Playgroud)

  • @ FC84您可以将子图的纵横比设置为相等,例如`plt.subplots(1,2,subplot_kw = {'aspect':'equal'})` (3认同)