编程语言
首页 > 编程语言> > Python Matplotlib在一个画布上画多个饼图

Python Matplotlib在一个画布上画多个饼图

作者:互联网

绘图目的:对泰坦尼克号上的男女生存率绘制饼图,以直观展现男女不同的生存率
数据源下载链接:https://www.kaggle.com/c/titanic/data
经过处理后的数据如下图:
在这里插入图片描述

import pandas as pd
import numpy as np
from pandas import Series,DataFrame
from numpy.random import randn,rand
import matplotlib.pyplot as plt
fig,axes=plt.subplots(1,2)#创建画布
plt.rcParams['font.sans-serif']=['SimHei']#解决中文乱码,使用指定的汉字字体类型(此处为黑体)
#画出饼图
labels=['遇难','存活']
sizes_m=[468,109]#男性生存饼图每块对应的数值
sizes_f=[81,233]#女性生存饼图每块对应的数值
colors=['red','lightskyblue']#每块对应的颜色
explode=(0.05,0.05)#将每一块分割出来,值越大分割出的间隙越大
axes[0].pie(sizes_m,
        colors=colors,
        labels=labels,
        explode=explode,
        autopct='%.2f%%',#数值设置为保留固定小数位的百分数
        shadow=False,#无阴影设置
        startangle=90,#逆时针起始角度设置
        pctdistance=0.5,#数值距圆心半径背书距离
        labeldistance =1.05#图例距圆心半径倍距离
       )#在axes[0]上绘制男性饼图
axes[0].axis('equal')#x,y轴刻度一致,保证饼图为圆形
axes[0].legend(loc='best')
axes[0].set_title('男性存活/遇难饼图')
axes[1].pie(sizes_f,
        colors=colors,
        labels=labels,
        explode=explode,
        autopct='%.2f%%',#数值设置为保留固定小数位的百分数
        shadow=False,#无阴影设置
        startangle=180,#逆时针起始角度设置
        pctdistance=0.5,#数值距圆心半径背书距离
        labeldistance =1.05#图例距圆心半径倍距离
       )#在axes[1]上绘制女性饼图
axes[1].axis('equal')#x,y轴刻度一致,保证饼图为圆形
axes[1].set_title('女性存活/遇难饼图')
axes[1].legend(loc='best')
fig.savefig('Titanic_survival_sex.jpg',dpi=200)#将饼图保存到本地,格式为jpg格式,每英寸点数分辨率设置为200

保存的图片如下:
在这里插入图片描述

标签:explode,axes,sizes,Python,labels,Matplotlib,画布,colors,import
来源: https://blog.csdn.net/p1306252/article/details/106733022