python常用库学习-Matplotlib使用

文章目录

      • 安装 Matplotlib
      • 导入库
      • 基本示例
        • 1. 绘制简单的线图
        • 2. 散点图
        • 3. 柱状图
        • 4. 直方图
        • 5. 子图
      • 更多高级功能
        • 1. 自定义样式
        • 2. 文本和注释
        • 3. 保存图形
      • 示例:使用 Matplotlib 绘制多个图表
        • 示例 1: 绘制多个线图
        • 示例 2: 绘制散点图和直方图
      • 参考文献

Matplotlib 是 Python 中一个非常流行的绘图库,它提供了大量的图形绘制功能,可以创建各种静态、动态和交互式的图表。下面是一些使用 Matplotlib 的基本示例和说明。

安装 Matplotlib

如果你还没有安装 Matplotlib,可以通过 pip 安装:

pip install matplotlib

导入库

import matplotlib.pyplot as plt

基本示例

1. 绘制简单的线图
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)# 创建图形
plt.plot(x, y, label='sin(x)')# 添加标题和标签
plt.title('Sine Wave')
plt.xlabel('x')
plt.ylabel('sin(x)')# 添加图例
plt.legend()# 显示图形
plt.show()

在这里插入图片描述

2. 散点图
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.random.randn(100)
y = np.random.randn(100)# 创建图形
plt.scatter(x, y, color='blue', alpha=0.5)# 添加标题和标签
plt.title('Scatter Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')# 显示图形
plt.show()

在这里插入图片描述

3. 柱状图
import matplotlib.pyplot as plt# 创建数据
labels = ['A', 'B', 'C']
values = [3, 7, 2]
# 创建图形
plt.bar(labels, values)# 添加标题和标签
plt.title('Bar Chart')
plt.xlabel('Category')
plt.ylabel('Value')# 显示图形
plt.show()

在这里插入图片描述

4. 直方图
import numpy as np
import matplotlib.pyplot as plt# 创建数据
data = np.random.randn(1000)# 创建图形
plt.hist(data, bins=20, edgecolor='black')# 添加标题和标签
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')# 显示图形
plt.show()

在这里插入图片描述

5. 子图
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)# 创建图形
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))# 第一个子图
ax1.plot(x, y1)
ax1.set_title('Sine Wave')
ax1.set_xlabel('x')
ax1.set_ylabel('sin(x)')# 第二个子图
ax2.plot(x, y2)
ax2.set_title('Cosine Wave')
ax2.set_xlabel('x')
ax2.set_ylabel('cos(x)')# 显示图形
plt.show()

在这里插入图片描述

更多高级功能

1. 自定义样式
import matplotlib.pyplot as plt# 设置样式
plt.style.use('seaborn')# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)# 创建图形
plt.plot(x, y)# 显示图形
plt.show()
2. 文本和注释
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)# 创建图形
plt.plot(x, y)# 添加文本注释
plt.text(5, 0.5, r'$\sin(x)$', fontsize=14, color='red')# 添加箭头注释
plt.annotate('Maximum',xy=(np.pi, 1), xycoords='data',xytext=(+10, +30), textcoords='offset points',arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))# 显示图形
plt.show()
3. 保存图形
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)# 创建图形
plt.plot(x, y)# 保存图形
plt.savefig('sine_wave.png')# 显示图形
plt.show()

示例:使用 Matplotlib 绘制多个图表

示例 1: 绘制多个线图
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)# 创建图形
plt.figure(figsize=(10, 5))# 第一个线图
plt.subplot(1, 2, 1)
plt.plot(x, y1)
plt.title('Sine Wave')
plt.xlabel('x')
plt.ylabel('sin(x)')# 第二个线图
plt.subplot(1, 2, 2)
plt.plot(x, y2)
plt.title('Cosine Wave')
plt.xlabel('x')
plt.ylabel('cos(x)')# 显示图形
plt.show()
示例 2: 绘制散点图和直方图
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.random.randn(1000)# 创建图形
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))# 散点图
ax1.scatter(x, np.random.randn(1000), alpha=0.5)
ax1.set_title('Scatter Plot')
ax1.set_xlabel('X-axis')
ax1.set_ylabel('Y-axis')# 直方图
ax2.hist(x, bins=20, edgecolor='black')
ax2.set_title('Histogram')
ax2.set_xlabel('Value')
ax2.set_ylabel('Frequency')# 显示图形
plt.show()

以上就是使用 Matplotlib 进行数据可视化的基础介绍。Matplotlib 提供了许多其他高级功能,如三维图表、等高线图、误差线图等。如果需要绘制更复杂, 更全面的图形, 请参考文章末尾官网相关地址。

参考文献

官网地址
官方样例地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/416515.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库安装(详细)—>Mariadb的安装(day21)

该网盘链接有效期为7天,有需要评论区扣我: 通过网盘分享的文件:mariadb-10.3.7-winx64.msi 链接: https://pan.baidu.com/s/1-r_w3NuP8amhIEedmTkWsQ?pwd2ua7 提取码: 2ua7 1 双击打开安装软件 本次安装的是mariaDB,双击打开mar…

移动UI:成就勋章页面该如何设计,用例子说明。

移动应用的UI成就勋章页面通常是一个展示用户在应用中取得成就和获得勋章的页面。这种页面通常用于激励用户参与应用的活动,增加用户的参与度和忠诚度。 UI设计成就勋章页面时,一般会包括以下元素和功能: 1. 勋章列表: 展示用户…

集成电路学习:什么是ARM先进精简指令集计算机

ARM:先进精简指令集计算机 ARM先进精简指令集计算机(Advanced RISC Machine,简称ARM)是一种基于精简指令集计算机(RISC)原则的计算机处理器架构,由英国的ARM公司开发。这种架构以其低功耗和高性…

git创建本地分支并track跟踪远程分支

git创建本地分支并track跟踪远程分支 查看本地分支与远程分支的映射关系: git branch -vv 查看远程都有什么分支: git branch -r 在本地自动新建一个xxx分支,且自动track跟踪远程的同名xxx分支: git checkout --track origin/xx…

《黑神话:悟空》背后的渲染技术解析

《黑神话:悟空》作为备受瞩目的国产单机游戏,承载了深厚的文化底蕴,其背后的渲染技术无疑是推动其视觉表现达到新高度的关键。这款游戏不仅融合了传统与创新的角色设计,还通过一系列前沿的图形渲染技术,为玩家带来了前…

写的一致性问题之双写模式

文章目录 1、先写mysql:mysql会回滚,而redis不会回滚2、先写redis: 1、先写mysql:mysql会回滚,而redis不会回滚 写入msql成功,写入redis也成功,但是后续事务提交失败,mysql会回滚&a…

遗传算法Github初学

遗传算法的理论是根据达尔文进化论而设计出来的算法:人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因 遗传算法(genetic algorithm——GA)是计算数学中…

记一次Linux安装Maven、Git并拉取SpringBoot代码打包

记一次Linux安装Maven、Git并拉取SpringBoot代码打包 前言一、现在我用的方案二、安装Git三、安装maven四、脚本编写五、idea中运行六、总结 前言 在Java后端开发中,我相信基本上都在用springboot开发,因为它的约定优于配置,自动配置&#x…

五,Spring Boot中的 Spring initializr 的使用

五,Spring Boot中的 Spring initializr 的使用 文章目录 五,Spring Boot中的 Spring initializr 的使用1. 方式1:IDEA创建2. 方式2:start.spring.io 创建3. 注意事项和细节4. 最后: 需要:使用 Spring initi…

html+css网页设计 合十文化2个页面

htmlcss网页设计 合十文化2个页面 ui还原度90% 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 …

学习使用双指针

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:leetcode刷题 双指针,有时候是快慢指针的方式来进行题目, 有时候是同向双指针来完成题目(这个也叫滑动窗口), 有时候是通过两个…

STM32(F103ZET6)第十九课:FreeRtos的移植和使用

目录 需求一、FreeRtos简介二、移植FreeRtos1.复制代码2.内存空间分配和内核相关接口3.FreeRtosConfig4.添加到工程中三、任务块操作1.任务四种状态2.创建任务过程 需求 1.将FreeRtos(嵌入式实时操作系统)移植到STM32中。 2.在该系统中实现任务的创建、…

智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(KNN分类器)

智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(KNN分类器) 文章目录 一、基本原理原理流程举个例子总结 二、实验结果三、核心代码四、代码获取五、总结 智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序&#x…

macos MacPort 包管理工具安装和使用

在macos v10.15版本中, xz, python等软件无法使用brew安装, 原因是brew对于旧版本的macos不再支持, 但是我们可以使用另外一个macos下的包管理工具来安装brew无法安装的软件, macport 是一个和brew类似的macos下的一个非常优秀的软件包安装管理工具. MacPort安装前提条件 安…

【qt踩坑】路径含中文导致的报错,以及 OpenGL的链接报错

​ 背景 本来是准备采用VSQt插件的方式来开发Qt的,但是学习过程中发现,这种模式还是没有直接用Qt Creator 开发来的方便,插件这种模式坑多,功能不完善。 不过在直接使用Qt Creator的时候也踩坑了: (最后发现&#x…

SprinBoot+Vue健康管管理微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平…

qt报错 error: undefined reference to `vtable for RelayDevice 解决方法

在 Qt 编程中,当出现错误 undefined reference to ‘vtable for RelayDevice’ 时,通常是因为类的虚函数没有实现,或者未正确实现虚析构函数。以下是一些可能的解决方法: 确保实现所有虚函数: 检查 RelayDevice 类中声…

git clone 别人的项目上传到自己的Gitee或者github仓库

git clone别人的项目 git clone https://github.com/wohuweixiya/yft-design.git 进入该项目内,删除原有的.git信息 rm -r .git 初始化.git git init 将本地代码添加到仓库 git add . git commit -m "提交仓库说明" Github上新建一个和这个clone下来…

Rust多线程编程概述

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust到底值不值得学,之一 -CSDN博客 Rust到底值不值得学,之二-CSDN博客 12.2 多线程编程概述 12.2.1 线程…

基于51单片机的电动机控制系统的设计

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP…