matplotlib.pyplot饼状图中加入标签、颜色、 所占比例,加入起始角度和阴影并分离,设置标题

matplotlib.pyplot饼状图中加入标签、颜色、 所占比例,加入起始角度和阴影并分离,设置标题

1. 第一个饼状图

饼状图使用 plt.pie()

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
# 创建数据
y = [17, 28, 25, 30]
plt.pie(y)  # 传入数据
plt.title('one pie')  #设置标题
plt.show()  # 绘图

在这里插入图片描述

2. 饼状图中加入标签, 颜色, 所占比例

加入标签 labels=labels labels为列表
加入颜色 colors=colors colors为列表
加入所占比例**autopct=‘%.1f%%’**保留一位小数
举例
plt.pie(y, labels=labels, colors=colors, autopct=‘%.1f%%’)

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
# 选择字体中文显示
plt.rcParams['font.family'] = ['Microsoft YaHei']
# 创建数据
y = [17, 28, 25, 30]
labels = ['A', 'B', 'C', 'D']
colors = ["#d5610d", "#5d9ca9", "#65a509", "#a498c6"]
# 第一个饼状图加标签和颜色
plt.subplot(1, 2, 1)
# 传入数据
plt.pie(y, labels=labels, colors=colors)
plt.title("加标签和颜色")  # 设置标题
# 第二个饼状图加百分比和起始角度
plt.subplot(1, 2, 2)
# 传入数据
plt.pie(y, labels=labels, colors=colors, autopct='%.1f%%')
plt.title("加百分比和起始角度")  # 设置标题
plt.suptitle("饼状图对比", color='yellowgreen', fontsize=20)  # 设置总标题
# 绘图
plt.show()

结果
在这里插入图片描述

3. 饼状图添加起始角度和阴影并分离,设置标题

添加起始角度 startangle=90 默认0起始90度是正上方为起点
添加阴影立体感 shadow=True 默认False
举例
plt.pie(y,startangle=90, shadow=True, explode=(0, 0.2, 0, 0))
设置标题
plt.title(“str”, color=‘color’, fontsize=20) # 标题

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
# # 选择字体中文显示
plt.rcParams['font.family'] = ['Microsoft YaHei']
# 创建数据
y = [17, 28, 25, 30]
labels = ['A', 'B', 'C', 'D']
colors = ["#d5610d", "#5d9ca9", "#65a509", "#a498c6"]
# 第一个饼状图添加起始角度和阴影并分离
plt.subplot(1, 2, 1)
# 传入数据
plt.pie(y, labels=labels, colors=colors, autopct='%.1f%%', startangle=90, shadow=True, explode=(0, 0.2, 0, 0))
plt.title("加阴影并分离")  # 设置标题
# 第二个饼状图更改标题颜色和文字大小
plt.subplot(1, 2, 2)
# 传入数据
plt.pie(y, labels=labels, colors=colors, autopct='%.1f%%', startangle=90, shadow=True, explode=(0, 0.2, 0, 0))
plt.title("更改标题颜色和10号文字大小", color='purple', fontsize=10)  # 设置标题
plt.suptitle("饼状图对比", color='yellowgreen', fontsize=20)  # 设置总标题
# 绘图
plt.show()

结果
在这里插入图片描述
公众号下回复‘饼状图’获取源码
在这里插入图片描述

好的,你的问题是如何使用Matplotlib绘制一个含有三个子图的图表,并对图表进行一些调整和修改,其包括文字体的设置、小标题的添加和数据的显示。我会尽力回答你的问题。 首先,我们需要导入Matplotlib模块并设置文字体为黑体。代码如下: ```python import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' ``` 接着,我们可以使用subplot2grid函数来创建三个子图。代码如下: ```python fig = plt.figure(figsize=(10, 8), dpi=100, facecolor='white') plt.subplots_adjust(hspace=0.4, wspace=0.4) ax1 = plt.subplot2grid((2, 2), (0, 0)) ax2 = plt.subplot2grid((2, 2), (0, 1)) ax3 = plt.subplot2grid((2, 2), (1, 0), colspan=2) ``` 这里我们使用了subplot2grid函数来创建一个2x2的网格,并将三个子图放置在网格的不同位置。我们还使用了plt.subplots_adjust函数来调整子图之间的间距和布局。 接下来,我们可以添加小标题和数据。代码如下: ```python ax1.set_title('2022届华业生和2023届毕业生求职意向分析') ax1.bar(['薪酬福利', '稳定工作', '工作和生活平衡', '学习新东西', '专业对口', '前景好', '兴趣'], [65.0, 36.2, 38.5, 39.5, 22.8, 21.3, 8.3]) ax2.set_title('2023届毕业生期望就职的城市等级') ax2.pie([30.0, 30.0, 26.7, 10.2, 1.9, 1.2], labels=['一线城市', '新一线城市', '二线城市', '三线城市', '四线城市', '五线城市'], autopct='%1.1f%%') ax3.set_title('2022届毕业生和2023届毕业生找工作时间分布') ax3.bar(['上年1月前', '上年1-6月', '上年7-8月', '上年9月', '上年10月', '上年11月', '上年12月', '同年1月', '同年2月', '同年3月', '还没找工作'], [5.9, 8.3, 5.3, 10.5, 19.2, 8.7, 5.6, 8.3, 8.8, 10.2, 21.9]) ``` 这里我们使用ax1、ax2和ax3分别表示三个子图,并使用set_title、bar和pie函数添加小标题和数据。注意,我们使用了标签和数据,因此需要正确设置文字体。 最后,我们可以使用plt.show()函数显示图表。完整代码如下: ```python import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' fig = plt.figure(figsize=(10, 8), dpi=100, facecolor='white') plt.subplots_adjust(hspace=0.4, wspace=0.4) ax1 = plt.subplot2grid((2, 2), (0, 0)) ax2 = plt.subplot2grid((2, 2), (0, 1)) ax3 = plt.subplot2grid((2, 2), (1, 0), colspan=2) ax1.set_title('2022届华业生和2023届毕业生求职意向分析') ax1.bar(['薪酬福利', '稳定工作', '工作和生活平衡', '学习新东西', '专业对口', '前景好', '兴趣'], [65.0, 36.2, 38.5, 39.5, 22.8, 21.3, 8.3]) ax2.set_title('2023届毕业生期望就职的城市等级') ax2.pie([30.0, 30.0, 26.7, 10.2, 1.9, 1.2], labels=['一线城市', '新一线城市', '二线城市', '三线城市', '四线城市', '五线城市'], autopct='%1.1f%%') ax3.set_title('2022届毕业生和2023届毕业生找工作时间分布') ax3.bar(['上年1月前', '上年1-6月', '上年7-8月', '上年9月', '上年10月', '上年11月', '上年12月', '同年1月', '同年2月', '同年3月', '还没找工作'], [5.9, 8.3, 5.3, 10.5, 19.2, 8.7, 5.6, 8.3, 8.8, 10.2, 21.9]) plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值