首页 > 编程语言 >python 进阶教程--matplotlib

python 进阶教程--matplotlib

时间:2024-07-06 12:26:33浏览次数:16  
标签:plt 进阶 python pyplot Matplotlib 图表 -- matplotlib 样式

matplotlib

3.1 安装配置

Matplotlib 是一个用于创建高质量图表的 Python 绘图库。在开始使用 Matplotlib 之前,需要先安装它。以下是安装 Matplotlib 的步骤:
步骤 1:确保已经安装了 Python 和 pip。pip 是 Python 的包管理工具,用于安装和管理 Python 包。
步骤 2:打开命令提示符或终端,输入以下命令来安装 Matplotlib:

pip install matplotlib

这将自动下载并安装 Matplotlib 及其依赖的包。
步骤 3:安装完成后,可以通过在 Python 解释器中导入 Matplotlib 来验证安装是否成功:

import matplotlib

如果没有出现错误消息,那么 Matplotlib 已经成功安装。
步骤 4:为了更好地使用 Matplotlib,建议安装一个图形用户界面(GUI)工具,如 Jupyter Notebook 或 PyCharm。这些工具可以帮助更方便地创建和展示图表。
步骤 5:在 Jupyter Notebook 中使用 Matplotlib 时,可以通过以下命令启用 inline 模式,以便在笔记本中直接显示图表:

%matplotlib inline

这就是安装配置 Matplotlib 的基本步骤。安装完成后,可以开始使用 Matplotlib 创建各种图表。


3.2 Matplotlib 快速入门

安装 Matplotlib 后,我们可以通过一些基本的示例来快速了解如何使用这个库。以下是一些简单的步骤来开始使用 Matplotlib 绘制图表。
步骤 1:导入 Matplotlib 的 pyplot 模块。pyplot 是 Matplotlib 的一个模块,提供了一个类似于 MATLAB 的绘图框架。

import matplotlib.pyplot as plt

步骤 2:准备数据。我们通常需要提供 x 和 y 轴的数据。

x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]

步骤 3:使用 plt.plot() 函数绘制图表。

plt.plot(x, y)

步骤 4:添加标题和标签,以便更好地描述图表。

plt.title('Sample Plot')
plt.xlabel('X-axis label')
plt.ylabel('Y-axis label')

步骤 5:调用 plt.show() 来显示图表。

plt.show()

将上述步骤组合在一起,我们得到一个简单的 Python 脚本,用于绘制一个基本的折线图。

import matplotlib.pyplot as plt
# 数据
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]
# 绘图
plt.plot(x, y)
# 添加标题和标签
plt.title('Sample Plot')
plt.xlabel('X-axis label')
plt.ylabel('Y-axis label')
# 显示图表
plt.show()

运行这段代码,将会弹出一个窗口,显示我们绘制的折线图。
这是 Matplotlib 的快速入门示例。通过这个示例,我们可以看到如何导入 pyplot 模块,准备数据,绘制图表,添加标题和标签,以及显示图表。接下来,我们可以学习如何绘制不同类型的图表和自定义图表的样式。


3.3 图形绘制

Matplotlib 支持多种图形的绘制,包括线图、散点图、条形图、饼图等。以下是一些基本图形绘制的示例。

线图

线图是最基本的图表类型之一,用于显示数据随时间或其他连续变量的变化趋势。

import matplotlib.pyplot as plt
# 数据
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]
# 绘制线图
plt.plot(x, y)
# 添加标题和标签
plt.title('Line Chart')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图表
plt.show()

散点图

散点图用于显示两个变量之间的关系,每个点代表一个数据点。

import matplotlib.pyplot as plt
# 数据
x = [5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6]
y = [99, 86, 87, 88, 100, 86, 103, 87, 94, 78, 77, 85, 86]
# 绘制散点图
plt.scatter(x, y)
# 添加标题和标签
plt.title('Scatter Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图表
plt.show()

条形图

条形图用于比较不同类别的数据。

import matplotlib.pyplot as plt
# 数据
categories = ['A', 'B', 'C', 'D']
values = [10, 8, 6, 4]
# 绘制条形图
plt.bar(categories, values)
# 添加标题和标签
plt.title('Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')
# 显示图表
plt.show()

饼图

饼图用于显示各部分占整体的比例。

import matplotlib.pyplot as plt
# 数据
labels = 'Apples', 'Oranges', 'Pears', 'Bananas'
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
# 绘制饼图
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)
# 显示图表
plt.axis('equal')  # 确保饼图是圆形的
plt.show()

这些是使用 Matplotlib 绘制基本图形的示例。通过调整绘图函数的参数,可以自定义图表的外观,包括颜色、线型、标记等。此外,Matplotlib 还支持更复杂的图表类型和自定义选项,可以通过官方文档进一步探索。


3.4 风格样式

Matplotlib 提供了多种内置的风格样式,可以让你的图表变得更加美观和个性化。通过使用样式,可以快速改变图表的整体外观,包括颜色、线型、背景等。

使用内置样式

Matplotlib 内置了许多样式,你可以通过 plt.style.use() 函数来选择使用。首先,让我们查看所有可用的样式:

import matplotlib.pyplot as plt
print(plt.style.available)

这将打印出所有可用的样式列表。选择一个样式并应用于你的图表:

plt.style.use('ggplot')  # 例如,使用 'ggplot' 样式

现在,使用这个样式绘制一个图表:

plt.plot([1, 2, 3, 4])
plt.show()

创建自定义样式

除了使用内置样式,你还可以创建自定义样式。可以通过创建一个名为 mpl_style.py 的 Python 文件来定义自己的样式,然后在这个文件中设置你想要的参数。例如:

# mpl_style.py
plt.style.use([
    'dark_background',  # 使用暗色背景
    {
        'axes.edgecolor': 'white',  # 轴边缘颜色为白色
        'axes.facecolor': '#333333',  # 轴背景颜色为深灰色
        'axes.labelcolor': 'white',  # 轴标签颜色为白色
        'xtick.color': 'white',  # x轴刻度颜色为白色
        'ytick.color': 'white',  # y轴刻度颜色为白色
        'grid.color': 'gray',  # 网格颜色为灰色
        'text.color': 'white',  # 文本颜色为白色
        'figure.facecolor': '#222222',  # 图表背景颜色为深灰色
        'savefig.facecolor': '#222222',  # 保存图表的背景颜色为深灰色
    }
])

然后在你的脚本中导入这个样式:

import matplotlib.pyplot as plt
import mpl_style
plt.style.use(mpl_style)  # 使用自定义样式
plt.plot([1, 2, 3, 4])
plt.show()

临时使用样式

如果你只想在特定的代码块中使用一个样式,可以使用 with 语句来临时应用样式:

import matplotlib.pyplot as plt
with plt.style.context('seaborn-darkgrid'):
    plt.plot([1, 2, 3, 4])
    plt.show()

在这个代码块中绘制的图表将使用 ‘seaborn-darkgrid’ 样式,而代码块之外的图表则不会受到影响。
通过这些方法,你可以轻松地改变 Matplotlib 图表的外观,使其更加符合你的需求或品牌风格。

标签:plt,进阶,python,pyplot,Matplotlib,图表,--,matplotlib,样式
From: https://blog.csdn.net/weixin_32759777/article/details/140212052

相关文章

  • Windows传统DOS路径有效性检测(资源篇)
    需求    本篇旨在探索Windows传统DOS路径有效性检测的一种可行方案,实际上许多Windows文件IO相关的API也同样可以作为一种方案,为了锻炼一下我们的思考和解决问题的能力,所以我们需要另辟蹊径。本篇将通过有限自动机来验证路径有效性,仅记录资源,具体的实现原理将在后续篇......
  • Spring-IOC
    Spring-IOC简介IOC(InversionofController)控制反转。把对象的控制权转移Spring框架,由Spring框架来管理对象的生命周期(例如对象的创建和销毁),还可以管理对象之间的依赖关系。所以IOC又叫作DIDI简介DI(Dependency Injection)依赖注入。当一个对象依赖另一个对象时,容器可以......
  • 2023.04.07day-61xy询问了牛逼题:单位立方体,体心作截面,求期望面积。根据Alice的想法,我们将其转化为对射线积分,可又遇到了问题,难搞。在456天之后,我们解决了这道题。为方便计算,不妨研究边长为\(2\)的正方体。首先转化为对射线积分:\[\int\limits_{|\vecn|=1}\text{A......
  • 那些年,学过的屠龙术
    朱泙漫学屠龙于支离益,单千金之家,三年技成而无所用其巧。程序员的技能,比如:Windows平台编程,从入行业时至今,没有做过相关的业务,相关的知识只能当成谈资。Windows平台下应用的crash问题,如何分析。Windows平台下应用的内存泄漏问题,如何分析。常见工具、命令的使用。Linux平......
  • js中数组方法总结
    改变原数组的方法有:栈方法push:数组末尾追加任意数量的元素,返回修改后数组的长度pop:数组末尾移除最后一项,返回移除的项队列方法unshift:数组前端添加任意个项并返回新数组的长度shift:移除数组中的第一项并返回改该项重排序方法sort:默认情况按照升序排列数组reserve:翻......
  • InnoDB存储引擎中的锁
    InnoDB存储引擎中的锁一、锁类型在InnoDB中实现了两个标准的行级锁,可以简单的看为两个读写锁:S共享锁:又叫读锁,其他事务可以继续加共享锁,但是不能继续加排他锁。X排他锁:又叫写锁,一旦加了写锁之后,其他事务就不能加锁了。如果一个事务T1已经获得了行r的共享锁,那么另外的事务T......
  • 移动硬盘磁头损坏数据恢复
    一、使用数据恢复软件前提条件:如果硬盘依旧可以被电脑检测到但无法读取或进入硬盘系统界面,可以尝试使用数据恢复软件。操作步骤:连接移动硬盘:将移动硬盘插入电脑的USB接口,并确保电脑能够识别到它。启动软件并选择硬盘:打开数据恢复软件,在软件界面中选择“外接设备”或类似的选项......
  • 一种尽可能减小内存占用的数据结构设计方法
         背景:以三维点为例,随着采集设备的日新月异,三维点的属性信息也越来越多(例如颜色、强度、回波信息、gps时间等);导致点云数据在处理时加载到计算机中所需要的内存空间也越来越大,但是有些数据往往只有x、y、z三个坐标值,则不需要为其开辟多余的内存空间,那一套统一的数据结......
  • 用友财务软件数据库恢复步骤
    一、准备工作确认问题:首先,确认是否真的需要数据库恢复。有时候,问题可能只是软件界面上的显示问题或配置错误,而非真正的数据丢失。备份当前状态(如果可能):在进行任何恢复操作之前,如果系统仍然可以访问,建议备份当前的数据库状态,以防恢复操作失败导致数据进一步丢失。二、查找备份......
  • 服务器开机报警
    服务器开机报警可能由多种原因引起,以下是一些常见的故障及其解决方法:一、故障原因电源问题:市电或电源线故障(断电或接触不良)。电源或电源模组故障,如电源模块故障、电源背板故障等。如果只有一个电源模块供电,或者该电源模块出现故障,也可能导致开机报警。硬件故障:内存故障:开机......