iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何用Python绘制棒棒糖图表
  • 871
分享到

如何用Python绘制棒棒糖图表

python绘制图表python棒棒糖图表 2022-06-02 22:06:57 871人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

大家好,我是小F~ 条形图在数据可视化里,是一个经常被使用到的图表。 虽然很好用,也还是存在着缺陷呢。比如条形图条目太多时,会显得臃肿,不够直观。 棒棒糖图表则是对条形图的改进,以一种小清新的设计,清晰明了表达了我们

大家好,我是小F~

条形图在数据可视化里,是一个经常被使用到的图表。

虽然很好用,也还是存在着缺陷呢。比如条形图条目太多时,会显得臃肿,不够直观。

棒棒糖图表则是对条形图的改进,以一种小清新的设计,清晰明了表达了我们的数据。

下面小F就给大家介绍一下,如何使用python绘制棒棒糖图表。

使用到的是我国1949到2019年,历年的出生人口数据,数据来源国家统计局。

首先读取一下数据。


import pandas as pd
import 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 pd
import 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')

得到结果如下。

源码地址:

链接:https://pan.baidu.com/s/1vUgjonTOvgN7rDPx_8RfUg  密码:i613

现在对于条形图,你就有了另外一个选择,即棒棒糖图表。

此外我们也能了解到目前中国的新出生人口数量是越来越少,据说2020年出生人口降幅或超一成,未来几年恐跌破1000万...

以上就是如何用Python绘制棒棒糖图表的详细内容,更多关于用Python绘制棒棒糖图表的资料请关注编程网其它相关文章!

--结束END--

本文标题: 如何用Python绘制棒棒糖图表

本文链接: https://www.lsjlt.com/news/10618.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何用Python绘制棒棒糖图表
    大家好,我是小F~ 条形图在数据可视化里,是一个经常被使用到的图表。 虽然很好用,也还是存在着缺陷呢。比如条形图条目太多时,会显得臃肿,不够直观。 棒棒糖图表则是对条形图的改进,以一种小清新的设计,清晰明了表达了我们...
    99+
    2022-06-02
    python 绘制图表 python 棒棒糖图表
  • 使用Python怎么绘制一个棒棒糖图表
    本篇文章给大家分享的是有关使用Python怎么绘制一个棒棒糖图表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先读取一下数据。import pandas ...
    99+
    2023-06-15
  • 使用R语言绘制棒棒糖图火柴杆图教程
    目录 使用原生ggplot方法1)生成数据使用ggpubr包中的ggdotchart()参考 使用原生ggplot方法 最容易也是最简单想到的方法是直接使用ggp...
    99+
    2022-11-12
  • python绘制棉棒图的方法详解
    目录案例参数总结用法: matplotlib.pyplot.stem(*args, linefmt=None, markerfmt=None, basefmt=None, botto...
    99+
    2022-11-13
  • Python使用bar绘制堆积/带误差棒柱形图的实现
    本博文源于《python数据可视化》(黑马程序员编著)。先讲解bar参数如何使用,然后分别演示堆积柱形图和带误差柱形图画法。 bar参数 bar(x,height,width=0...
    99+
    2022-11-12
  • Python中使用matplotlib模块errorbar函数绘制误差棒图实例代码
    目录1.基本参数2.代码实现3.结果显示4.更多参数请参考matplotlib官网总结Python的matplotlib模块中的errorbar函数可以绘制误差棒图,本次主要绘制不带...
    99+
    2022-11-11
  • Python如何使用pyecharts控件绘制图表
    这篇文章主要介绍“Python如何使用pyecharts控件绘制图表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何使用pyecharts控件绘制图表”文章能帮助大家解决问题。一、Ec...
    99+
    2023-06-30
  • Qt如何绘制图表
    这篇文章给大家分享的是有关Qt如何绘制图表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 简介使用Qt的charts模块来绘制图表,案例来自Qt自带的demo。charts模块简介:Qt Chars模块提供了一...
    99+
    2023-06-15
  • 使用python绘制常用的图表
    本文介绍如果使用python汇总常用的图表,与Excel的点选操作相比,用python绘制图表显得比较比较繁琐,尤其提现在对原始数据的处理上。但两者在绘制图表过程中的思路大致相同,Excel中能完成的工作p...
    99+
    2022-06-04
    图表 常用 python
  • 如何用Python绘制动态可视化图表
    本篇内容主要讲解“如何用Python绘制动态可视化图表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用Python绘制动态可视化图表”吧!安装模块如果你还没安装 Plotly,只需在你的终端...
    99+
    2023-06-30
  • 如何用Python绘制可视化动态图表
    这篇文章主要介绍“如何用Python绘制可视化动态图表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用Python绘制可视化动态图表”文章能帮助大家解决问题。对数据科学家来说,讲故事是一个至关重...
    99+
    2023-06-30
  • Python使用pyecharts控件绘制图表
    目录一、Echarts简介1、特性2、相关资源:二、使用1、柱状图-Bar2、饼图-Pie3、箱体图-Boxplot4、折线图-Line5、雷达图-Rader6、散点图-scatte...
    99+
    2022-11-11
  • Python利用Matplotlib绘制图表详解
    目录前言折线图绘制与显示绘制数学函数图像散点图绘制绘制柱状图绘制直方图饼图前言 Matplotlib 是 Python 中类似 MATLAB 的绘图工具,如果您熟悉 MATLAB,那...
    99+
    2022-11-13
  • 怎么用Python matplotlib plotly绘制图表
    这篇文章主要讲解了“怎么用Python matplotlib plotly绘制图表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python matplo...
    99+
    2023-06-29
  • Python中怎么用Matplotlib绘制图表
    这篇文章主要介绍“Python中怎么用Matplotlib绘制图表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中怎么用Matplotlib绘制图表”文章能帮助大家解决问题。前言Matp...
    99+
    2023-06-28
  • 如何利用 Python 绘制动态可视化图表
    目录一、安装相关的模块二、gif和matplotlib的结合三、gif和plotly的结合四、matplotlib多子图动态可视化五、动态气泡图一、安装相关的模块 首先第一步的话我们...
    99+
    2022-11-13
  • 如何利用python库matplotlib绘制不同的图表
    这篇文章主要介绍如何利用python库matplotlib绘制不同的图表,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、绘制简单曲线图思路:通过3个坐标点,绘制曲线import matplotlib.py...
    99+
    2023-06-29
  • python如何绘制饼图
    小编给大家分享一下python如何绘制饼图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用法matplotlib.pyplot.pie(x, explo...
    99+
    2023-06-29
  • 使用Python绘制图表大全总结
    在使用Python绘制图表前,我们需要先安装两个库文件numpy和matplotlib。 Numpy是Python开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身数据结构要高效;matplo...
    99+
    2022-06-04
    图表 大全 Python
  • 如何用python绘制雷达图
    目录一、比较汽车性能 二、比较不同城市近期天气状况雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法,雷达图通常用于综合分析多个指标,具有...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作