Pandas入门篇(三)-------数据可视化篇1(matplotlib篇)

目录

概述

Matplotlib是一个用于绘制图表和可视化数据的Python库,由John D. Hunter于2003年创建。它是一个开源项目,广泛应用于科研、教育和工程等领域。Matplotlib提供了广泛的绘图功能,适用于科学计算、数据分析、机器学习等领域,并且尤其适用于中小规模的数据集和对可视化定制要求较高的场景。

Matplotlib的主要特点包括:

  • 广泛的图表类型:支持多种图表类型,包括线图、散点图、柱状图、饼图、等高线图等,适用于不同类型的数据可视化需求。
  • 直观而灵活的绘图工具:用户可以通过简单的代码创建高质量的图表,并对其进行自定义,以满足特定的可视化需求。
  • 渐进、交互式实现数据可视化:Matplotlib支持以渐进和交互式的方式实现数据可视化,使得用户能够更深入地探索和理解数据。

Matplotlib创建图表主要有两种模式:面向对象模式(Object-Oriented API)和pyplot模式(pyplot API)。

一、pyplot模式(pyplot API):

pyplot模式提供了一种MATLAB风格的接口,它提供了一系列函数,允许用户以简单、直接的方式创建图表。在这种模式下,用户不需要显式地创建Figure和Axes对象,pyplot会自动管理这些对象。这使得代码更加简洁,易于理解和编写。

以下是一个使用pyplot模式创建简单折线图的示例:

python 复制代码
import matplotlib.pyplot as plt  
  
# 生成数据  
x = [1, 2, 3, 4, 5]  
y = [2, 4, 6, 8, 10]  
  
# 使用pyplot绘制折线图  
plt.plot(x, y)  
  
# 显示图表  
plt.show()

运行结果:

二、面向对象模式(Object-Oriented API):

在这种模式下,用户会首先创建一个Figure对象,这可以看作是一个画布。然后,在这个Figure对象上,用户会创建一个或多个Axes对象,这些Axes对象就是用于绘制图表的具体区域。用户可以针对每个Axes对象进行图表的绘制和定制。这种模式提供了更大的灵活性和控制力,允许用户更精细地控制图表的各个部分。

以下是一个使用面向对象模式创建简单折线图的示例:

python 复制代码
import matplotlib.pyplot as plt  
  
# 创建画布,
fig,ax = plt.subplots(figsize=(10,5))
  
# 使用Axes对象绘制折线图  
x = [1, 2, 3, 4, 5]  
y = [2, 4, 6, 8, 10]  
ax.plot(x, y)  
  
# 显示图表  
plt.show(fig)

运行结果:

这两种模式各有优缺点。面向对象模式提供了更大的灵活性和控制力,适合对图表进行更精细的定制;而pyplot模式则更加简洁直观,适合快速绘制简单的图表。用户可以根据自己的需求选择合适的模式。

三、创建图表详细流程

本次主要用pyplot模式来讲解创建图表的主要流程

(一)创建画布(figure)

figure() 是 Matplotlib 库中用于创建一个新的图形窗口的函数,它返回一个 Figure 对象,该对象可以被视为一个画布,用于绘制图表和其他图形元素。

1.函数格式

python

python 复制代码
matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)

2.参数解释

  • num:整数或字符串,可选参数。用于指定图形的编号或名称。如果提供了整数,它将是图形的编号;如果提供了字符串,它将是图形的窗口标题。如果省略,则会自动生成编号。
  • figsize:一个包含两个浮点数的元组,可选参数。指定图形的宽度和高度(以英寸为单位)。
    例如,figsize=(8, 6) 会创建一个宽度为 8 英寸、高度为 6 英寸的图形。
  • dpi:整数,可选参数。图形的分辨率,即每英寸的点数。默认值通常为 100,但可以根据需要进行调整。
  • facecolor:颜色规范字符串或 RGB 元组,可选参数。图形的背景颜色。
  • edgecolor:颜色规范字符串或 RGB 元组,可选参数。图形边缘的颜色。
  • frameon:布尔值,可选参数。如果为 True,则绘制图形边框。
  • FigureClass:Figure 的子类,可选参数。用于创建图形的自定义 Figure 类。
  • clear:布尔值,可选参数。如果为 True,则清除当前图形(如果存在)。

3.返回值

figure() 函数返回一个 Figure 对象,你可以使用它来进一步定制图形和添加子图(Axes)。

python 复制代码
fig = plt.figure(figsize=(10, 8))

(二)传入x轴和y轴的值(plot)

plot()函数是用于在 Axes 对象上绘制线图的基本函数。它接受一系列 x 和 y 坐标点,并连接这些点以形成线。

1.函数语法

python 复制代码
# 创建画布
matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None)

2.参数解释

  • x, y:这些参数是序列,表示数据点的 x 和 y 坐标。通常 x 和 y 是长度相同的数组或列表。如果 x 和 y 都是缺失的,那么可以使用一个序列,此时序列中的值将被视为 y 值,x 值将被自动生成为 0, 1, 2, ...。
  • fmt:字符串,可选参数,用于指定线条的颜色、样式和标记。例如,'r-' 表示红色实线,'go' 表示绿色圆圈标记点。
  • linestyle 或 ls:线条样式,例如 '-'、'--'、'-.'、':' 或 ' '(空格表示无线)。
    color 或 c:线条颜色。
  • marker:标记样式,例如 'o'、'.'、','、's' 等。
  • mew, mfc, mec:分别表示标记边缘宽度、标记填充颜色和标记边缘颜色。
  • label:图例的标签。
  • alpha:透明度,介于 0(完全透明)和 1(完全不透明)之间。
  • linewidth 或 lw:线条宽度。

3.返回值

plot 函数返回一个线条列表,每个线条是一个 Line2D 对象,这些对象可以在之后被进一步定制或查询。

python 复制代码
# 添加 x,y 轴
x = [1, 3, 5, 6, 10]
y = [-5, 3, 5, 6, 5]
plt.plot(x, y)

(三)添加网格线(grid)

grid()用于在图表上添加网格线。网格线可以帮助读者更容易地读取图表上的数据点,特别是在处理大量数据时。

plt.grid() 有几个可选参数,可以用来定制网格线的外观和行为。

参数:

  • b 或 bool:决定是否显示网格线。默认值为 None,意味着是否显示网格线取决于当前的 rcParam 设置。
  • axis:指定在哪个轴('x', 'y', 'both')上显示网格线。默认值为 'both',表示在 x 轴和 y 轴上都显示网格线。
  • which:决定网格线是在主要刻度('major')上,还是在次要刻度('minor')上显示,或者两者都显示('both')。默认值为 'major',表示只在主要刻度上显示网格线。
  • linestyle 或 ls:设置网格线的样式(例如,'-'、'--'、'-.'、':'、'steps' 等)。
  • color 或 c:设置网格线的颜色。
  • alpha:设置网格线的透明度。
  • linewidth 或 lw:设置网格线的宽度。
python 复制代码
# 添加绿色网格虚线
plt.grid(True,color= 'g',ls= '--')

(四)添加x轴和y轴值范围(xlim/ylim)

plt.xlim()/ylim用于设置当前轴的 x 轴的范围。这个函数接受两个参数,分别表示 x 轴的最小值和最大值,从而限制了图表中 x 轴显示的数据范围。

1.格式

python 复制代码
matplotlib.pyplot.xlim/ylim(xmin/ymin=None, xmax/ymax=None)

2. 参数

  • xmin/ymin, xmax/ymax:这两个参数指定了 x 轴的范围。可以是单个值(当另一个参数为 None 时,表示只设置一端的限制,另一端保持自动计算),或者是一对值(表示同时设置最小值和最大值)。
    返回值
    plt.xlim()/ylim() 函数返回当前 x 轴的范围,即 (xmin/ymin, xmax/ymax)。
python 复制代码
# 添加x轴和y轴值范围
plt.xlim(0, 10)
plt.ylim(-5, 10)

(五)添加x轴y轴标签(xlabel/ylabel)

xlabel 和 ylabel 是 Matplotlib 库中用于为图表的 x 轴和 y 轴添加标签的函数。这些标签可以帮助读者更好地理解图表所展示的数据。

xlabel 函数

xlabel 函数用于设置 x 轴的标签。

语法:

python 复制代码
matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None)

参数解释:

xlabel:字符串,表示 x 轴的标签文本。

fontdict:字典,可选参数,用于指定标签文本的字体属性。

labelpad:浮点数,可选参数,表示标签与轴之间的距离。

ylabel 函数

ylabel 函数用于设置 y 轴的标签。

语法:

python 复制代码
matplotlib.pyplot.ylabel(ylabel, fontdict=None, labelpad=None)

参数解释:

ylabel:字符串,表示 y 轴的标签文本。

fontdict:字典,可选参数,用于指定标签文本的字体属性。

labelpad:浮点数,可选参数,表示标签与轴之间的距离。

python 复制代码
# 添加x轴和y轴值标签,size为字体大小
plt.xlabel('x', size=20)
plt.ylabel('y', size=20)

(六)添加标题和绘制图表

使用ttitle添加标题和show绘制图表

python 复制代码
# 添加标题和绘制
plt.title('test',size=20)
plt.show()

完整流程代码实现:

python 复制代码
import matplotlib.pyplot as plt


# 1.创建画布
plt.figure(figsize=(10, 8))
# 2.添加 x,y 轴
x = [1, 3, 5, 6, 10]
y = [-5, 3, 5, 6, 7]
plt.plot(x, y)
# 3.添加绿色网格虚线
plt.grid(True,color= 'r',ls= '--')
# 添加x轴和y轴值范围
plt.xlim(0, 10)
plt.ylim(-5, 10)
# 添加x轴和y轴值标签
plt.xlabel('x', size=10)
plt.ylabel('y', size=10)
# 添加标题和绘制
plt.title('test',size=20)
plt.show()

表格:

四、常用图表样式

1、折线图:使用 plot() 函数来绘制折线图。

python 复制代码
import matplotlib.pyplot as plt  
  
x = [1, 2, 3, 4, 5]  
y = [2, 4, 6, 8, 10]  
  
plt.plot(x, y)  
plt.xlabel('X Label')  
plt.ylabel('Y Label')  
plt.title('Title')  
plt.show()

运行结果:

2.散点图:同样使用 plot() 函数,但可以通过指定点标记来绘制散点图。

python 复制代码
import matplotlib.pyplot as plt  
  
x = [1, 2, 3, 4, 5]  
y = [2, 4, 1, 8, 10]  
  
plt.plot(x, y, 'o')  # 'o' 表示使用圆圈作为点标记  
plt.xlabel('X Label')  
plt.ylabel('Y Label')  
plt.title('Scatter Plot')  
plt.show()

三个变量时也可用size大小和color来表示第三个变量的变化

3.柱状图:使用 bar() 函数来绘制柱状图。

python 复制代码
import matplotlib.pyplot as plt  
  
x = ['A', 'B', 'C', 'D']  
y = [10, 15, 7, 10]  
  
plt.bar(x, y)  
plt.xlabel('Categories')  
plt.ylabel('Values')  
plt.title('Bar Chart')  
plt.show()

4、饼图:使用 pie() 函数来绘制饼图。

python 复制代码
import matplotlib.pyplot as plt  
  
labels = ['A', 'B', 'C', 'D']  
sizes = [15, 30, 45, 10]  
  
plt.pie(sizes, labels=labels, autopct='%1.1f%%')  # autopct 用于显示百分比  
plt.title('Pie Chart')  
plt.axis('equal')  # 保证饼图是圆的,而不是椭圆形的  
plt.show()

这只是 Matplotlib 的一部分功能,实际上 Matplotlib 提供了更加复杂和高级的图表类型,如等高线图、热力图、三维图表等。具体使用时,可以根据需要查阅 Matplotlib 的官方文档或相关教程来深入了解更多细节和用法。

下篇内容

Pandas的可视化

相关推荐
湫ccc36 分钟前
《Python基础》之基本数据类型
开发语言·python
山海青风1 小时前
使用 OpenAI 进行数据探索性分析(EDA)
信息可视化·数据挖掘·数据分析
drebander2 小时前
使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
java·python·list
威威猫的栗子2 小时前
Python Turtle召唤童年:喜羊羊与灰太狼之懒羊羊绘画
开发语言·python
如若1232 小时前
利用 `OpenCV` 和 `Matplotlib` 库进行图像读取、颜色空间转换、掩膜创建、颜色替换
人工智能·opencv·matplotlib
墨染风华不染尘3 小时前
python之开发笔记
开发语言·笔记·python
Dxy12393102163 小时前
python bmp图片转jpg
python
麦麦大数据3 小时前
Python棉花病虫害图谱系统CNN识别+AI问答知识neo4j vue+flask深度学习神经网络可视化
人工智能·python·深度学习
LKID体3 小时前
Python操作neo4j库py2neo使用之创建和查询(二)
数据库·python·neo4j
LKID体3 小时前
Python操作neo4j库py2neo使用之py2neo 删除及事务相关操作(三)
开发语言·python·neo4j