如何用Python绘制棒棒糖图表
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要讲解了"如何用Python绘制棒棒糖图表",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何用Python绘制棒棒糖图表"吧!使用到的是我国
千家信息网最后更新 2024年11月11日如何用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安全错误
数据库的锁怎样保障安全
水利网络安全体系由哪些部分组成
数据库技术经历了哪3个阶段
天气同花顺java软件开发
网络安全公司需要什么许可证
网络安全技巧大咖
用什么软件开发软件好
寻甸专业性软件开发咨询报价
数据库输出结果怎么变成表格
学会电脑基础软件开发
东莞学习网络安全免费试学
昆山网络技术支持费用
软件开发过程核心业务功能
数据库空间模型机推荐
网络安全法行业组织
数据库建设基本流程图doc下载
小规模纳税人软件开发几个点
你无法在安全服务器上游戏
漳州优品网络技术有限公司
天长软件开发公司
华博互联网科技小额贷
地球网络技术图片
数据库和图片下载
数据库的分组
网络安全 国务院
无线网络技术人员
国家网络安全宣传视频云南
雪花型表 数据库
美洲豹服务器
数据库输出结果怎么变成表格
东丽区媒体网络技术答疑解惑