Python 基于 Matplotlib 实现数据可视化(一)

简介: Python 基于 Matplotlib 实现数据可视化

当我们进行数据分析的时候,如果单纯的只有一堆数据摆在你面前,你看起来肯定不舒服。最好能将数据的变化,通过图形呈现出来,在实现数据可视化后,我们就能够更快、更容易、更清晰地看懂数据所要呈现、传达的信息。

Python 在数据展示方面,有非常多好用的工具,比如 Matplotlib、Seaborn、Pygal等,都是颇受欢迎的功能包。我们接下来看看,怎么去实现展示本地的数据,还有从网络中获取到的数据。

可视化视图,大致上我们可以分为 4 大类,分别是:

  • 相互比较:比如折线图,可以进行比较数据间各个类别之间的关系,包括数据随着时间的变化趋势;
  • 相互联系:比如散点图,可以观察到两个或两个以上实例间的关系;
  • 构成占比:比如饼图,可以很直观看到每个部分所占的比例、份额大小,包括其随着时间的比例变化;
  • 分布情况:比如直方图,可以观察单个或多个变量的具体分布情况。

常用的 10 种视图:散点图、折线图、直方图、条形图、饼图、热力图、箱型图、蜘蛛图、二元变量分布图、成对关系。

1、安装 Matplotlib

打开终端,输入 pip install matplotlib即可自动安装。

如果你想要查看 Matplotlib 开发者文档,输入 python -m pydoc -p 8899即可,启动之后再访问 http://localhost:8899,在 .../site-packages栏下找到 matplotlib(package)就是了。

2、折线图

最近大家是不是又看到标题上写着「史上最惨毕业季」的文章啊?其实,每年都是这么写的,每年都是最难、最惨的。

其实,我们可以找到对应的数据,把它画成折线图,你看看就知道毕业生人数的趋势了。

这是 2010 年~2022 年大学毕业生数据(单位:万):

年份 大学毕业生人数(单位:万) 研究生人数
2022 1076 120
2021 909 117.65
2020 874 110.66
2019 834 91.65
2018 821 85.8
2017 795 80.61
2016 765 66.71
2015 749 64.51
2014 700 62.13
2013 699 61.14
2012 680 58.97
2011 660 56.02
2010 631 53.82

2.1 2010 年~2022 年大学毕业生数据

根据上面给出的数据,我们先来绘制一幅折线图,看看从 2010 年到 2022 年之间的大学毕业生人数的变化趋势。其中,我们 X 轴为年份,Y 轴为人数,代码如下:

# 定义 X 轴和 Y 轴数据
# 其中,X 轴为年份;Y 轴为毕业生人数(单位:万)
xData = [2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022]
yData = [631,660,680,699,700,749,765,795,821,834,874,909,1076]
# 参数 1,设置横坐标的值
# 参数 2,设置纵坐标的值
plt.plot(xData, yData, xData, yData2)
# 展示图像
plt.show()

运行结果,如图所示:

2.2 2010 年~2022 年研究生数据

那如果说,我想看看研究生人数是否也这么大的增长幅度,也这么夸张?其实也不难,传入多个代表 X 轴、Y 轴的数据的列表就行了,就可以得到一张复合折线图了。

代码如下:

# 定义 X 轴和 Y 轴数据
# 其中,X 轴为年份;Y 轴为毕业生人数(单位:万)
xData = [2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022]
yData = [631,660,680,699,700,749,765,795,821,834,874,909,1076]
# 加入研究生人数
yData2 = [53.82,56.02,58.97,61.14,62.13,64.51,66.71,80.61,85.8,91.65,110.66,117.65,120]
# 参数 1,设置横坐标的值
# 参数 2,设置纵坐标的值
# 参数 3,设置第二条折线的横坐标的值
# 参数 4,设置第二条折线的纵坐标的值
plt.plot(xData, yData, xData, yData2)
# 展示图像
plt.show()

运行结果,如图所示:

2.3 修改颜色、线条粗细

甚至,你还可以改折线的颜色、粗细,也很简单。比如,通过 color可以指定对应的颜色,通过 linewidth可以指定折线的粗细,代码如下:

# 通过 color 可以指定对应的颜色
# 通过 linewidth 可以指定粗细值
plt.plot(xData, yData, color='orange', linewidth=5.0)
plt.plot(xData, yData2, color='green', linewidth=5.0)
# 展示图像
plt.show()

运行结果,如图所示:

2.4 折线的 4 种样式

如果你不喜欢「实线」的线条,你也可以通过 linestyle来更改,常用的四种类型,分别是:

第一种,- 表示实线(默认值);

第二种:-- 表示虚线;

第三种:: 表示虚点;

第四种:-. 表示短线、点的结合。

代码如下:

plt.plot(xData, yData, color='orange', linewidth=5.0, linestyle='--')
plt.plot(xData, yData2, color='green', linewidth=5.0, linestyle='-.')
# 展示图像
plt.show()

运行结果,如图所示:

3、饼图

3.1 普通饼图

通过饼图,你可以很容易的看到,每个部分的数据所占大小与总体数据之间的比例。在 Matplotlib 中,我们通过 pie(x, labels=None) 函数来绘制饼图,其中 x 代表饼图中的数据,且可以指定多个不同的份额,labels 用来指定饼图的标题。

假设,我们来统计一家水果店的种类份额,很简单的,代码如下:

import matplotlib.pyplot as plt
# 饼图的数据
datas = [22, 30, 35, 8, 15]
# 标签(苹果,梨,桃子,葡萄,樱桃)
labs = ['apple', 'pear', 'peach', 'grape', 'cherry']
plt.pie(x = datas, labels = labs)
plt.show()

运行结果,如图所示:

3.2 分离饼图

如果说,你想特别去突出某一块儿,让它更显眼的话,咱也可以办到。在 pie() 函数中,再指定 explode 就好了。

# 饼图的数据
datas = [22, 30, 35, 8, 15]
# 标签(苹果,梨,桃子,葡萄,樱桃)
labs = ['apple', 'pear', 'peach', 'grape', 'cherry']
# 分离,将 cherry 分离出去
exp = [0,0,0,0,0.15]
plt.pie(x = datas, labels = labs, explode = exp)
plt.show()

运行结果,如图所示:

3.3 饼图的更多设置

当然,你还有很多可以指定的显示方式,比如你可以自定义饼图的颜色、百分比的格式、标签与圆心的距离、饼图的初始角度、圆心、饼图的半径、逆/顺时针方向、圆圈实线、标题等等,大家都可以去多尝试。

代码如下:

import matplotlib.pyplot as plt
# 饼图的数据
datas = [22, 30, 35, 8, 15]
# 标签(苹果,梨,桃子,葡萄,樱桃)
labs = ['apple', 'pear', 'peach', 'grape', 'cherry']
# 分离,将 cherry 分离出去
exp = [0,0,0,0,0.15]
# 自定义颜色
cols = ['orange', 'green', 'blue', 'red', 'purple']
plt.pie(x = datas, 
        labels = labs, 
        explode = exp, 
        colors = cols, 
        autopct = '%.2f%%', # 设置百分比
        textprops = {'fontsize':12, 'color':'black'},# 设置字体属性
       )
# 标题
plt.title('Fruit Shop')
plt.show()

运行结果,如图所示:

Python 基于 Matplotlib 实现数据可视化(二)+

目录
相关文章
|
6天前
|
数据可视化 数据挖掘 定位技术
Python和Geopandas进行地理数据可视化
【10月更文挑战第22天】本文介绍了如何使用Python和Geopandas进行地理数据可视化和分析,涵盖从准备工作、加载数据、数据探索与处理、地理数据可视化、空间分析与查询到交互式地理数据可视化等内容。通过丰富的代码示例和案例演示,帮助读者掌握地理数据分析的基本方法,为实际应用提供支持。
41 19
|
2天前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
9天前
|
数据可视化 JavaScript 前端开发
Python中交互式Matplotlib图表
【10月更文挑战第20天】Matplotlib 是 Python 中最常用的绘图库之一,但默认生成的图表是静态的。通过结合 mpld3 库,可以轻松创建交互式图表,提升数据可视化效果。本文介绍了如何使用 mpld3 在 Python 中创建交互式散点图、折线图和直方图,并提供了详细的代码示例和安装方法。通过添加插件,可以实现缩放、平移和鼠标悬停显示数据标签等交互功能。希望本文能帮助读者掌握这一强大工具。
29 5
|
14天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
35 5
|
18天前
|
数据可视化 数据挖掘 Python
使用Python进行数据可视化:探索与实践
【10月更文挑战第21天】本文旨在通过Python编程,介绍如何利用数据可视化技术来揭示数据背后的信息和趋势。我们将从基础的图表创建开始,逐步深入到高级可视化技巧,包括交互式图表和动态展示。文章将引导读者理解不同图表类型适用的场景,并教授如何使用流行的库如Matplotlib和Seaborn来制作美观且具有洞察力的可视化作品。
42 7
|
17天前
|
数据可视化 定位技术 Python
使用Python进行数据可视化
【10月更文挑战第22天】在这篇文章中,我们将深入探讨如何使用Python进行数据可视化。我们将从基础的图表开始,然后逐步进入更复杂的可视化技术。我们将通过实例代码来展示如何实现这些可视化,以便读者能够更好地理解和应用这些技术。
18 5
|
18天前
|
数据可视化 Python
使用Python进行数据可视化的初学者指南
【10月更文挑战第20天】本文旨在为编程新手提供一个简洁明了的入门指南,通过Python语言实现数据可视化。我们会介绍如何安装必要的库、理解数据结构,并利用这些知识来创建基本图表。文章将用通俗易懂的语言和示例代码,帮助读者快速掌握数据可视化的基础技能。
27 4
|
19天前
|
数据可视化 数据挖掘 定位技术
Python中利用Bokeh创建动态数据可视化
【10月更文挑战第14天】本文介绍了如何使用 Bokeh 库在 Python 中创建动态数据可视化。Bokeh 是一个强大的开源可视化工具,支持交互式图表和大规模数据集的可视化。文章从安装 Bokeh 开始,逐步讲解了如何创建动态折线图,并添加了交互式控件如按钮、滑块和下拉菜单,以实现数据更新频率的调节和颜色选择。通过这些示例,读者可以掌握 Bokeh 的基本用法,进一步探索其丰富功能,创建更具吸引力和实用性的动态数据可视化。
24 0
|
26天前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
22 0
|
数据可视化 Python
【100天精通Python】Day62:Python可视化_Matplotlib绘图基础,绘制折线图、散点图、柱状图、直方图和饼图,以及自定义图标外观和功能,示例+代码
【100天精通Python】Day62:Python可视化_Matplotlib绘图基础,绘制折线图、散点图、柱状图、直方图和饼图,以及自定义图标外观和功能,示例+代码
204 0