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

embedded/2024/10/19 7:36:50/

目录

  • 概述
  • 一、pyplot模式(pyplot API):
  • 二、面向对象模式(Object-Oriented API):
  • 三、创建图表详细流程
    • (一)创建画布(figure)
      • 1.函数格式
      • 2.参数解释
      • 3.返回值
    • (二)传入x轴和y轴的值(plot)
      • 1.函数语法
      • 2.参数解释
      • 3.返回值
    • (三)添加网格线(grid)
      • 参数:
    • (四)添加x轴和y轴值范围(xlim/ylim)
      • 1.格式
      • 2. 参数
    • (五)添加x轴y轴标签(xlabel/ylabel)
      • xlabel 函数
      • ylabel 函数
    • (六)添加标题和绘制图表
  • 四、常用图表样式
    • 1、折线图:使用 plot() 函数来绘制折线图。
    • 2.散点图:同样使用 plot() 函数,但可以通过指定点标记来绘制散点图。
    • 3.柱状图:使用 bar() 函数来绘制柱状图。
    • 4、饼图:使用 pie() 函数来绘制饼图。
  • 下篇内容

概述

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的可视化


http://www.ppmy.cn/embedded/29056.html

相关文章

Oracle索引组织表与大对象平滑迁移至OceanBase的实施方案

作者简介&#xff1a;严军(花名吉远)&#xff0c;十年以上专注于数据库存储领域&#xff0c;精通Oracle、Mysql、OceanBase&#xff0c;对大数据、分布式、高并发、高性能、高可用有丰富的经验。主导过蚂蚁集团核心系统数据库升级&#xff0c;数据库LDC单元化多活项目&#xff…

第二篇:构筑数字世界的骨架:探索计算机硬件与指令的艺术

构筑数字世界的骨架&#xff1a;探索计算机硬件与指令的艺术 1 引言 在探究今天的数字化社会背后的驱动力时&#xff0c;我们不可避免地要深入了解计算机硬件与指令集——这些看似抽象的概念实则构成了我们日常依赖的技术的基础。在本篇文章中&#xff0c;让我们一同踏入这个由…

增强大模型高效检索:基于LlamaIndex ,构建一个轻量级带有记忆的 ColBERT 检索 Agent

在自然语言处理领域&#xff0c;高效检索相关信息的能力至关重要。将对话式记忆集成到文档检索系统中已经成为增强信息检索代理效果的强大技术。 在文中&#xff0c;我们专为 LlamaIndex 量身定制&#xff0c;将深入探讨构建一个轻量级的带有记忆的 ColBERT 检索代理&#xff…

iOS ------ Method Swizzling (动态方法交换)

一&#xff0c;Method Swizzling 简介 Method&#xff08;方法&#xff09;对应的是objc_method结构体&#xff1b;而objc_method结构体中包含了SEL method_name(方法名&#xff09;&#xff0c;IMP method_imp&#xff08;方法实现&#xff09; // objc_method 结构体 typed…

手撕C语言题典——合并两个有序数组(顺序表)

搭配食用更佳哦~~ 数据结构之顺顺顺——顺序表-CSDN博客 数据结构之顺序表的基本操作-CSDN博客 继续来做一下关于顺序表的经典算法题叭~ 前言 88. 合并两个有序数组 - 力扣&#xff08;LeetCode&#xff09; 合并数组也是力扣上关于顺序表的一道简单题&#xff0c;继续来加深…

P9586 「MXOI Round 2」游戏

「MXOI Round 2」游戏 题目描述 小 C 和小 D 正在玩一款蒸蒸日上的游戏。 这款游戏共有 3 3 3 种手牌&#xff1a;杀、闪、斩。他们的用途分别如下&#xff1a; 杀&#xff1a;对对方使用&#xff0c;对方需要使用一张闪&#xff0c;否则对方输掉游戏&#xff1b;或回应对方…

【机器学习】机器学习在教育领域的应用场景探索

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

机器学习-什么是 PCA?

一、PCA是什么&#xff1f; PCA 即主成分分析&#xff08;Principal Component Analysis&#xff09;哦&#xff01;它是一种统计分析方法&#xff0c;主要用于掌握事物的主要矛盾。PCA能从多元事物中解析出主要影响因素&#xff0c;揭示事物的本质&#xff0c;简化复杂问题。…