使用matplotlib的多个饼图

2024-05-13 23:47:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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()

如何同时显示两个图形?


Tags: onlydatalabelsstatsnpmpfloatnum
3条回答

除了香蕉的答案,你还可以在同一个图中绘制不同的子图:

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

有几种方法可以做到这一点,最简单的方法是使用多个数字。只需告诉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

或者,可以使用子块/多个轴在同一图形上放置多个馅饼:

mp.subplot(211)
mp.pie(..)
mp.subplot(212)
mp.pie(...)
mp.show()

相关问题 更多 >