如何用Python绘制棒棒糖图表
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,这篇文章主要讲解了"如何用Python绘制棒棒糖图表",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何用Python绘制棒棒糖图表"吧!使用到的是我国
千家信息网最后更新 2025年02月19日如何用Python绘制棒棒糖图表
这篇文章主要讲解了"如何用Python绘制棒棒糖图表",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何用Python绘制棒棒糖图表"吧!
使用到的是我国1949到2019年,历年的出生人口数据,数据来源国家统计局。
首先读取一下数据。
import pandas as pdimport matplotlib.pyplot as plt# 读取数据df = pd.read_csv('data.csv')print(df)
数据集很简单,每行都只有一个年份和一个值。
先绘制一个带有每年数值的条形图。
# 绘制柱状图plt.bar(df.Year, df.value)plt.show()
两行代码,即可得到一张条形图图表,看起来确实是有点拥挤。
下面将最后一年,即2019年的数据区分出来。
给2019年的条形着色为黑色,其他年份为浅灰色。
并且在图表中添加散点图,可在条形图的顶部绘制圆形。
# 新建画布fig, ax = plt.subplots(1, figsize=(12, 8))# 年份数n = len(df)# 颜色设置colors = ['black'] + ((n-1)*['lightgrey'])plt.bar(df.Year, df.value, color=colors)plt.scatter(df.Year, df.value, color=colors)plt.show()
颜色已经修改成功,还需要调整一下条形图的宽度以及顶部圆圈的大小。
# width: 条形图宽度 s: 散点图圆圈大小plt.bar(df.Year, df.value, color=colors, width=0.2)plt.scatter(df.Year, df.value, color=colors, s=10)plt.show()
比起先前的蓝色条形图图表,棒棒糖图表确实是好看了不少。
除了用条形图来绘制棒棒糖图表,还可以使用线条,这样整体的宽度会更加一致。
X将Year(年份)数据作为起点和终点,Y以-20和各年份数据作为起点和终点。
import pandas as pdimport matplotlib.pyplot as plt# 读取数据df = pd.read_csv('data.csv')print(df)# 新建画布fig, ax = plt.subplots(1, figsize=(12, 8))# 年份数n = len(df)# 颜色设置colors = ['black'] + ((n-1)*['lightgrey'])# 使用线条for idx, val in df.iterrows(): plt.plot([val.Year, val.Year], [-20, val.value], color=colors[idx])plt.show()
可以使用参数标记在两端绘制圆,而不是只在顶部生成散点图。
然后可以通过更改y-limit参数来隐藏最底端的圆。
# 新建画布fig, ax = plt.subplots(1, figsize=(12, 8))# 年份数n = len(df)# 颜色设置colors = ['black'] + ((n-1)*['lightgrey'])# 使用线条, markersize设置标记点大小for idx, val in df.iterrows(): plt.plot([val.Year, val.Year], [-20, val.value], color=colors[idx], marker='o', markersize=3)# 设置y轴最低值plt.ylim(0,)plt.show()
此外还可以调整lw、markersize参数,定义线条的粗细及标记的大小,甚至可以绘制两次线条以创建轮廓效果。
# 新建画布fig, ax = plt.subplots(1, figsize=(12, 8))color = 'b'# 年份数n = len(df)# 颜色设置colors = ['black'] + ((n-1)*['lightgrey'])# 使用线条for idx, val in df.iterrows(): plt.plot([val.Year, val.Year], [-20, val.value], color='black', marker='o', lw=4, markersize=6) plt.plot([val.Year, val.Year], [-20, val.value], color=colors[idx], marker='o', markersize=4)# 移除上边框、右边框ax.spines['right'].set_visible(False)ax.spines['top'].set_visible(False)# 设置x、y轴范围plt.xlim(1948, 2020)plt.ylim(0,)# 中文显示plt.rcParams['font.sans-serif'] = ['Songti SC']plt.title('中国历年出生人口数据(万)', loc='left', fontsize=16)plt.text(2019, -220, '来源:国家统计局', ha='right')# 2019年出生人口数(显示)value_2019 = df[df['Year'] == 2019].value.values[0]plt.text(2019, value_2019+80, value_2019, ha='center')# 保存图片plt.savefig('chart.png')
黑色不是特别好看,改个颜色看看。
# 新建画布fig, ax = plt.subplots(1, figsize=(12, 8))# 年份数n = len(df)# 颜色设置color = 'b'colors = ['#E74C3C'] + ((len(df)-1)*['#F5B7B1'])# 使用线条for idx, val in df.iterrows(): plt.plot([val.Year, val.Year], [-20, val.value], color=colors[idx], marker='o', lw=4, markersize=6, markerfacecolor='#E74C3C')# 移除上边框、右边框ax.spines['right'].set_visible(False)ax.spines['top'].set_visible(False)# 设置x、y轴范围plt.xlim(1948, 2020)plt.ylim(0,)# 中文显示plt.rcParams['font.sans-serif'] = ['Songti SC']plt.title('中国历年出生人口数据(万)', loc='left', fontsize=16)plt.text(2019, -220, '来源:国家统计局', ha='right')# 2019年出生人口数(显示)value_2019 = df[df['Year'] == 2019].value.values[0]plt.text(2019, value_2019+80, value_2019, ha='center')# 保存图片plt.savefig('chart.png')
感谢各位的阅读,以上就是"如何用Python绘制棒棒糖图表"的内容了,经过本文的学习后,相信大家对如何用Python绘制棒棒糖图表这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
数据
图表
年份
条形
线条
颜色
棒棒糖
人口
画布
大小
历年
参数
国家
宽度
来源
标记
统计局
顶部
国家统计局
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
我的世界推荐服务器房间
模拟苹果服务器
拉卡拉网络技术有限公司徐汇
反网络安全法第27条规定
大型软件开发模式
网络技术活动纪实
微软数据库有什么好处
软件开发现在还能做吗
软件开发工具软件下载
为什么服务器的物理内存占用过高
多玩武林外传数据库
网络安全视频教程哪个好
理发店网络安全管理制度
魔兽世界1比1服务器
数据库技术与应用简介
车牌识别系统数据库
怎样开发网络技术
网络安全模块龙头股
校招 软件开发 面试经验
北京游戏软件开发公司严
电影院购票系统数据库分析
数据库如何二位数改成三位数
代理服务器https
石家庄商城软件开发服务商
无法打开数据库回复操作已将
海淀区实用软件开发报价
mc空岛服务器
武汉专业的网络安全机构简单易学
北京德利迅达登峰大数据库
怎么提高软件开发的单价