查看原文
其他

数据治理 | 随心所欲的Pandas绘图!

快点关注→ 数据Seminar 2022-12-31

本文目录

一、前言

二、Pandas 绘图说明

  1. 绘制柱状图
  2. 绘制折线图

三、总结

📜本文共4645字,预计阅读时间12分钟,感谢阅读!


💡本文所用数据为:

  • 数字经济专题数据库1978-2019年时间分布统计数据

  • 数字经济专题数据库存活企业省级区域分布统计数据(截止2019年06月)

💡数据获取方式:关注本公众号,后台回复关键词“202204”即可获取

Part1前言

上期文章中,我们详细地介绍了使用 Pandas 进行数据匹配的方法。在数据清洗与数据分析中,数据匹配是非常实用的数据处理技巧,能够帮助我们搭建自己的数据体系。在前面的一些文章中,我们已经介绍了很多使用 Pandas 处理数据的方法和技巧。而本期文章我们将会介绍如何使用 Pandas 绘制各种各样的数据分析可视化图形。
本文中所有 Python 代码均在集成开发环境 Visual Studio Code (VScode) 中使用交互式开发环境 Jupyter Notebook 编写和运行。

Part2Pandas 绘图说明

Pandas 作为一个数据处理模块,本身没有独立绘制图形的功能。但是我们实际上是可以调用 Pandas 的 plot() 方法来做数据可视化的,这是因为 plot() 方法是对 matplotlib 模块一部分功能的封装。而 matplotlib 是 Python 中最重要的数据可视化模块之一,Pandas 通过这种方式来“借用”其他模块的功能,实现简单快速的数据可视化操作。
Pandas 虽然借用了数据可视化模块 matplotlib 的一部分功能,但是它的绘图自由度和功能却无法和 matplotlib 本身相提并论。Pandas 追求的是快速、简单;这就是它的优点。下面我们将会使用真实数据为大家介绍如何绘制数据可视化图形柱状图折线图,并简单介绍 matplotlib 模块。
由于 Pandas 的绘图功能是通过 matplotlib 来实现的,所以他也继承了 matplotlib 的一些特点。我们绘制图形时,中文以及一些符号无法在图形中显示,所以我们需要提前配置好中文字体和其他符号。配置这些字体需要使用到 matplotlib 模块,所以我们需要事先安装好这个模块。
在 Windows 系统中,假如你已经安装了 Python 环境,那么按下 win+R ,输入 cmd 后回车,打开命令提示符界面并输入以下命令:
pip install matplotlib
稍等片刻后即安装完毕。
安装完成后使用以下代码设置中文字体和相关符号:
# 导入 matplotlib 模块
import matplotlib.pyplot as plt

# 设置中文字体为黑体
plt.rcParams['font.sans-serif'] = ['SimHei']

# 设置使负号 '-' 正常显示
plt.rcParams['axes.unicode_minus'] = False
运行这段代码后就设置好中文字体了,如果不设置字体,中文将会显示为方块

1绘制柱状图

前面讲到,Pandas 通过 pd.plot() 来绘制图形,实际上,plot() 有许多子方法,每个方法对应着不同图形的绘制。
我们使用数据【数字经济专题数据库存活企业省级区域分布统计数据(截止2019年06月).xlsx】绘制各省份企业存量分布柱状图,先读取数据:
import pandas as pd

path = '数字经济专题数据库存活企业省级区域分布统计数据(截止2019年06月).xlsx'
# 注意读取数据时,不要将数字字段读取为字符型
data = pd.read_excel(path)
data.head()   # 输出查看数据前 5 行
  
使用 Pandas 绘制柱状图(或条形图)的方法是 df.plot.bar() 。使用以上数据绘制柱状图的代码如下:
"""
参数说明:
    x     : 所绘图形横轴变量,如果使用 DataFrame 绘图,
            传入字段名即可。默认值是数据索引
    y     : 所绘图形纵轴变量,也就是数据值。
    color : 柱状图“柱子”的颜色,传入多个颜色时,
            需要使用列表或字典,默认值为蓝色
 subplots :是否显示子图,仅当存在多类“柱子”时才有意义,
            默认值为 False,表示不显示子图
"""


# 绘图代码
data.plot.bar(x='省份名称', y='企业存量')
下图是生成的原图:
可以看到,只使用一行代码即可成功绘制一张简洁美观的柱状图,美中不足的是所获图形清晰度太低,图片放大后比较模糊。这时我么可以通过设置画布的大小、比例以及图像的分辨率来使图片清晰。代码如下:
# 以下两个操作全局生效,后续绘制的图形也受影响

# 调整生成的图像的尺寸和比例(宽高比例)
plt.rcParams['figure.figsize'] = (10, 5)

# 设置图像清晰度,表示每英寸像素点数
plt.rcParams['figure.dpi'] = 500

# 绘图代码
data.plot.bar(x='省份名称', y='企业存量')
设置好画布大小比例和分辨率后,再次使用上面的代码重新绘制柱状图,所得结果如下:
也可以设置想要的颜色重新绘制一次:
# 设置混合颜色制作一张柱状图
data.plot.bar(x='省份名称'
              y='企业存量'
              color=['skyblue','yellow','pink','green'])
  

2绘制折线图

我们使用数据【数字经济专题数据库1978-2019年时间分布统计数据.xlsx】绘制折线图,先读取数据:
path_1 = '数字经济专题数据库1978-2019年时间分布统计数据.xlsx'
data_1 = pd.read_excel(path_1, nrows=42)
data_1.head()
  
折线图可以很好的反应数据的变化,也是数据分析中最为通用的图形之一。Pandas 中绘制折线图的方法是 df.plot.line() 。下面我们使用上面的数据来绘制一张描述企业数量随年份变化的折线图。
"""
参数说明:
    x     : 所绘图形横轴变量,如果使用 DataFrame 绘图,
            传入字段名即可。默认值是数据索引
    y     : 所绘图形纵轴变量,也就是数据值。
    color : 折线图“折线”的颜色,传入多个颜色时,
            需要使用列表或字典,默认值为蓝色
 subplots :是否显示子图,仅当存在多条折线时才有意义,
            默认值为 False,表示不显示子图
"""


# 绘制折线图
# 这里仅指定了横轴的自变量,那么纵轴的因变量将会是除自变量外所有字段
# 对应到数据中就是 成立企业数、死亡企业数、企业存量
data_1.plot.line(x = '年份')
   
同样,使用一行代码就可以绘制一张折线图。由于这个折线图中不止一条折线,所以我们可以绘制子图,分别查看每一条折线(注意纵轴刻度的变化)。代码如下:
data_1.plot.line(x = '年份', subplots=True)
  
设置颜色还有另一种方式,那就是为每一个主体设置指定的颜色。我们将成立企业折线设置为绿色,意味着新生;将死亡企业数折线设置为灰色,意味着死亡;将企业存量折线设置为红色,意味着红红火火。代码如下:
# 颜色参数格式为字典,与折线一一对应
data_1.plot.line(x = '年份',
                 color={'成立企业数':'green''死亡企业数':'gray''企业存量':'red'})
  
除此之外,我们还可以通过 matplotlib 模块设置其他的图像属性:
plt.rcParams['font.size'] = 15            # 设置字体大小
plt.rcParams['lines.linewidth'] = 3       # 设置线宽
plt.rcParams['lines.linestyle'] = '-.'    # 设置线条样式
plt.rcParams['savefig.jpeg_quality'] = 95 # 设置图片质量
plt.rcParams['text.color'] = 'purple'     # 设置文本颜色

# 新增这些属性后,再绘制一张折线图
data_1.plot.line(x = '年份',
                 color={'成立企业数':'green''死亡企业数':'gray''企业存量':'red'})
   

Part3总结

本文介绍了如何使用 Pandas 绘制常用的数据分析图之柱状图与折线图。与数据处理相比,这些图形更能吸引数据使用者,同时成功绘制一个图形也更让人有成就感。有数据分析可视话需求的读者可以参与学习,如果你想体验更多功能,可以尝试使用 matplotlib 模块。
下期文章我们将继续学习 Pandas ,学习如何绘制饼状图等其他优秀的数据分析图形。



💡本文所用数据为:

  • 数字经济专题数据库1978-2019年时间分布统计数据

  • 数字经济专题数据库存活企业省级区域分布统计数据(截止2019年06月)

💡数据获取方式:关注本公众号,后台回复关键词“202204”即可获取

我们将在数据治理板块中推出一系列原创推文,帮助读者搭建一个完整的社科研究数据治理软硬件体系。该板块将涉及以下几个模块(点击标题即可跳转至相应合集):

  1. 计算机基础知识
  2. 编程基础
  3. 数据采集
  4. 数据存储
  5. 数据清洗
  6. 数据实验室搭建



星标⭐我们不迷路!想要文章及时到,文末“在看”少不了!

点击搜索你感兴趣的内容吧

往期推荐


老姚专栏 | 停更声明

老姚专栏 | 赵平:怀念老姚

老姚专栏 | 丁骋骋:怀念老姚

老姚专栏 | 马丹:记忆中的老姚

老姚专栏 | 李井奎:别了,耀军!

老姚专栏 | 阮建青:怀念耀军兄

基本无害 | 专栏发刊词






数据Seminar




这里是大数据、分析技术与学术研究的三叉路口


文 | 《社科领域大数据治理实务手册》


    欢迎扫描👇二维码添加关注    

点击下方“阅读全文”了解更多

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存