Python数据可视化三部曲之 Matplotlib 从上手到上头(上)

简介: Python数据可视化三部曲之 Matplotlib 从上手到上头

文章目录

--安装命令--

1.plot()方法基本

1.1 方法概述

1.2 不设置x时

1.3 x中元素的顺序

2.设置坐标轴范围 plt.xlim() & plt.ylim()

3.设置坐标标签 plt.xticks() & plt.yticks()

4.负号正常显示 与 中文正常显示 问题

5. 设置坐标 轴 标签 plt.xlabel() & plt.ylabel()

6.增加标题 plt.title()

7.增加图例 和 网格 plt.legend() & plt.grid()

8. 设置样式(颜色,线条,标记)

8.1 线条颜色 color

8.2 线条样式 linestyle

8.3 标记样式 maker

8.4 线条宽度 linewidth

8.5 标记的样式

8.6 样式使用示例

9.面向对象绘图

9.1 面向对象绘图 - 创建画布对象

9.2 创建Axes对象

9.3 常用面向对象绘图方法

10.matplotlib进阶学习

(一)给图像添加 文本标签 与 注释

(二)subplots_adjust()方法解决图表与画布的间距问题

(三)直方图的绘制

(四)单柱柱形图与多柱柱形图的绘制

(五)绘制饼形图专题(从一般饼状图到内嵌环形图)

(六)绘制面积图&热力图

(七)绘制箱线图 与 异常值的输出

(八)双y轴图像实现

(九)绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)

(十)绘制渐变色扇形图 -基于 颜色地图plt.cm模块儿

(十一)实现 等高线图

–安装命令–

pip install matplotlib

1.plot()方法基本

1.1 方法概述

plot()方法是最常用的方法之一,Matplotlib绘图基本主要使用plot()函数。其通常用来绘制折线图,也可以用来绘制散点图。

因为plot()方法的构造过于复杂,很难一次将所有的参数将清楚。所以这里分块进行,按照功能来一步一步解析。plot()每多设定一个参数,每多一个plt命令,图像就会多一部分细节。


plot(x,y,format_string,**kwargs)


这里暂先展示一小部分参数,

其中


参数x

x 指x轴的数据 可以是一个列表,元组,Series等。也可以是range对象。


参数y

指的y轴的数据,可以选择的格式同x:可以是一个列表,元组,Series等。也可以是range对象。。


参数format_string

指的是控制曲线格式的字符串


kwargs
通过
kwargs可以传入键值参数。

1.2 不设置x时

当不设置x时,x轴默认为0,1,2…这样的数值类型。

import matplotlib.pyplot as plt
plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])
plt.show()

1.png

1.3 x中元素的顺序

绘图时,绘图的顺序与x内数值本身的大小无关,数值在x中的顺序,即为绘图的先后顺序。

如:

import matplotlib.pyplot as plt
plt.plot([2, 1, 3, 4, 5], [2, 5, 8, 12, 18])
plt.show()

2.png

即绘制此折线图时,先绘制了(2,2)点,再绘制了(1,5)点,接着绘制了(3, 8)点。


在x中,只要存在一个数据是字符串类型,则x中所有的元素都视为字符串,这些元素在图像中不再有大小之分。


代码示例如下:

import matplotlib.pyplot as plt
plt.plot([3, 1, '2', 4, 5], [2, 8, 12, 5, 9])
plt.show()

3.png

2.设置坐标轴范围 plt.xlim() & plt.ylim()

plt.ylim() 设置y轴范围。

plt.xlim() 设置x轴范围。

import matplotlib.pyplot as plt
plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])
plt.ylim(-3, 3)
plt.xlim(-10, 20)
plt.show()

4.png

3.设置坐标标签 plt.xticks() & plt.yticks()

设置标签,即可以将plot()中传入的x、y的元素值在坐标轴中以其他形式显示出来。

具体方法为


plt.xticks(location, lables,rotation)

plt.yticks(location, lables,rotation)


其中,location表示原x/y轴的数据(而不是位置索引下标),lables指新设定的标签,元素数量要与location相同,且与location相同位置上有着一一对应的关系。


rotation参数通过设定一个角度的数值,可以将设定的标签旋转一定的角度。(示例代码中将x轴标签旋转45度)


且在设置标签过程中,标签可以选择设置部分。没有设置的标签也不会再显示原值。(如下边代码中没有设置x轴上数值“2”处的标签)


具体示例如下:

import matplotlib.pyplot as plt
# 正常显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.plot([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 1, 0, 0, -1, 0, 1, 1, -1])
plt.ylim(-3, 3)
plt.xlim(-10, 20)
plt.xticks([1, 3, 4, 5, 6, 7, 8, 9],
           ['02-01', '02-03', '02-04',
            '02-05', '02-06', '02-07', '02-08',
            '02-09'], rotation=45)
plt.yticks([0, 1, -1], ['低', '高', '中'])
plt.show()

5.png

4.负号正常显示 与 中文正常显示 问题

负号正常显示

rcParams 是Matplotlib库中pyplot包绘图的参数字典,key为’axes.unicode_minus’的默认取值(value)为True,表示unicode的minus类型,有些字体对其兼容性支持不够,导致负号无法正常显示,现在将’axex.unicode_minus’的取值设为False,则可正常显示负号。


代码:

plt.rcParams[‘axes.unicode_minus’] = False



中文正常显示

默认情况下,图形中的中文为乱码形式


每次绘图前,通过代码更改参数。更改Matplotlib包中pyplot包的参数字(rcParams)字体的无衬线字体属性(font.sans-serif, 为参数字典的一个key)的取值(value),现将其设定为以’SimHei’为元素的数组形式。


代码:

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

5. 设置坐标 轴 标签 plt.xlabel() & plt.ylabel()

在图像中添加坐标轴标题可以直观地显示坐标轴代表的数据变量。

plt.xlabel()


plt.ylabel()

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.plot([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 1, 0, 0, -1, 0, 1, 1, -1])
plt.xticks([1, 2, 3, 4, 5, 6, 7, 8, 9],
           ['02-01', '02-02', '02-03', '02-04',
            '02-05', '02-06', '02-07', '02-08',
            '02-09'], rotation=45)
plt.yticks([0, 1, -1], ['低', '高', '中'])
plt.xlabel('日期')
plt.ylabel('A指标')
plt.show()

6.png

6.增加标题 plt.title()

plt.title()

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.title('xxxxxxxxxxx图像')
plt.plot([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 1, 0, 0, -1, 0, 1, 1, -1])
plt.xticks([1, 2, 3, 4, 5, 6, 7, 8, 9],
           ['02-01', '02-02', '02-03', '02-04',
            '02-05', '02-06', '02-07', '02-08',
            '02-09'], rotation=45)
plt.yticks([0, 1, -1], ['低', '高', '中'])
plt.xlabel('日期')
plt.ylabel('A指标')
plt.show()

7.png

7.增加图例 和 网格 plt.legend() & plt.grid()

增加图例可以通过plt.plot()方法的label参数添加,也可以通过plt.legend()添加。


增加网格通过plt.grid()方法添加。


plt.legend()

第一个参数是一个可迭代对象,其元素为表示图例的字符串,其传入时的顺序与上边代码中线条绘制的顺序一一对应。

第二个参数是loc参数,表示图例显示的位置。

第三个参数为字体大小fontsize。


plt.grid(b=None,which=‘major’, axis=‘both’, **kwargs)


参数b:

布尔数据类型,设定是否显示grid。默认为None,不显示。如需显示,则将B设定为True。


参数which:

设定 分割标示线(tick) 的类型,取值为"major", “minor"或者"both”。

默认为"major",表示以原本坐标轴分割标示线为准;

若取值为"minor",则表示 进一步细分 坐标轴分割标示线,但是 分割标准要提前设定好。如果只是设定值为"minor",则图形不会显示grid。

“both"表示大小区间坐标轴分割线都有。


参数axis:

制定绘制grid的坐标轴,取值为"both”(default), “x”, 或者"y"。both表示X轴和Y轴的grid都绘制。 默认都绘制。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot([5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31], label='股票A收盘价')
plt.plot([5.09, 5.13, 5.16, 5.12, 5.09, 5.25, 5.16, 5.20, 5.25], label='股票B收盘价')
plt.xticks(range(9), [
  '2021-02-01', '2021-02-02', '2021-02-03', '2021-02-04',
  '2021-02-05', '2021-02-06', '2021-02-07', '2021-02-08',
  '2021-02-09'], rotation=45)
plt.title('某股票收盘价时序图')
plt.xlabel('日期')
plt.ylabel('价格')
plt.grid(True, axis='y')
plt.legend()
plt.show()

8.png

目录
相关文章
|
17天前
|
机器学习/深度学习 数据可视化 搜索推荐
基于python的汽车数据可视化、推荐及预测系统
本研究围绕汽车数据可视化、推荐及预测系统展开,结合大数据与人工智能技术,旨在提升用户体验与市场竞争力。内容涵盖研究背景、意义、相关技术如 Python、ECharts、协同过滤及随机森林回归等,探讨如何挖掘汽车数据价值,实现个性化推荐与智能预测,为汽车行业智能化发展提供支持。
|
6天前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
21天前
|
数据采集 搜索推荐 数据可视化
基于python大数据的商品数据可视化及推荐系统
本系统基于Python、Django与ECharts,构建大数据商品可视化及推荐平台。通过爬虫获取商品数据,利用可视化技术呈现销售趋势与用户行为,结合机器学习实现个性化推荐,助力电商精准营销与用户体验提升。
|
15天前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。
|
25天前
|
搜索推荐 算法 数据可视化
基于python大数据的招聘数据可视化及推荐系统
本研究聚焦于基于协同过滤的就业推荐系统设计与实现。随着就业压力增大和信息技术发展,传统求职方式面临挑战。通过分析用户行为与职位特征,协同过滤技术可实现个性化职位推荐,提升求职与招聘效率。研究涵盖系统架构、数据采集、算法实现及可视化展示,旨在优化就业匹配,促进人才与岗位精准对接,助力就业市场智能化发展。
|
3月前
|
数据可视化 算法 数据挖掘
Python 3D数据可视化:7个实用案例助你快速上手
本文介绍了基于 Python Matplotlib 库的七种三维数据可视化技术,涵盖线性绘图、散点图、曲面图、线框图、等高线图、三角剖分及莫比乌斯带建模。通过具体代码示例和输出结果,展示了如何配置三维投影环境并实现复杂数据的空间表示。这些方法广泛应用于科学计算、数据分析与工程领域,帮助揭示多维数据中的空间关系与规律,为深入分析提供技术支持。
112 0
Python 3D数据可视化:7个实用案例助你快速上手
|
4月前
|
人工智能 数据可视化 数据挖掘
如何使用Python进行数据可视化
Python是一种强大的编程语言,广泛应用于数据分析与可视化。常见的可视化库有Matplotlib、Seaborn和Plotly等。数据可视化通常包括以下步骤:准备数据(如列表或从文件读取)、选择合适的工具、绘制图表、优化样式(如标题和标签)以及保存或分享结果。例如,使用Matplotlib可通过简单代码绘制线图并添加标题和轴标签。实际应用中,可通过调整颜色、样式等进一步优化图表,甚至使用交互式工具提升效果。总之,Python的丰富工具为数据可视化提供了强大支持。
159 5
|
6天前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
179 102
|
6天前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
171 104
|
6天前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
167 103

热门文章

最新文章

推荐镜像

更多