python常用库学习-Matplotlib使用

news2024/9/23 17:19:04

文章目录

      • 安装 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.coloradmin.cn/o/2105518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【QT】VS2020+QT插件 CMake项目开发踩坑记录

背景 我使用的是VS2022, 安装了QT的两个插件,并且使用CMake进行工程管理。 当然如果你想通过VS开发qt,第一步是安装QT(我目前安装了最新的6.7版本) 然后才是安装VS中的QT插件。 这篇文章,主要记录&#x…

Navicat出了免费版本

官方下载地址 Navicat出了一款免费版本Navicat Premium Lite,相比正常版本阉割了很多功能,最让人无奈的是没有美化sql功能。 可以满足我们的日常需求,提供了基础的功能:创建连接、连接分组、管理表、管理数据、导入导出数据。还…

台球助教APP小程序的前端交互设计

在当今移动互联网时代,台球助教APP小程序作为一种便捷的学习工具,正在成为越来越多台球爱好者的首选。作为设计人员,在开发台球助教APP小程序时,我们的目标是创造一个既美观又实用的应用程序,让用户在使用过程中感到舒…

VS编译环境中printf() scanf()等文件操作函数不安全编译报错的解决方法

如题,在使用诸如printf() scanf() fopen()等函数时会出现如下图这样不安全的错误 解决方法: 在程序的前面添加此预编译指令 #pragma warning(disable:4996) 添加后即可编译通过。

基于vue框架的超市管理系统yqogz(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,商品分类,商品信息,员工,进货信息 开题报告内容 基于Vue框架的超市管理系统开题报告 一、研究背景与意义 随着信息技术的飞速发展和零售行业的数字化转型,超市作为传统零售业的重要组成部分,面临着提升管…

「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究

「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究 文章目录 「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究前言介绍UIResponderUIGestureRecognizerUIControl 正文UIGestur…

都9月了,说好的系统规划与管理师改版教程呢?

今天距离2024年下半年的系统规划与管理师考试,还有66天的时间,六六大顺! 差不多是一个月之前,系统规划与管理师的改版消息被刷屏了,刷屏的原因是系统规划与管理师改版的消息,据说新版大纲和教材已经完成备案…

每日OJ_牛客_五子棋(判断是否有赢)

目录 牛客_五子棋(判断是否有赢) 解析代码 牛客_五子棋(判断是否有赢) 五子棋__牛客网 题目: 用例输入: .................... .................... .................... .................... ....…

Nginx: 模块化管理编译安装与配置结构

Nginx 模块化管理机制 Nginx 是一个高性能web和反向代理服务器,尤其是在激烈的Web服务器竞争领域中能够依然保持很好的这个发展势头,并且在现在的众多企业中得到一个广泛的应用,这一切其实跟Nginx架构设计是分不开的 另外高度模块化的设计也…

计算机毕业设计 二手闲置交易系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

影石相机tf内存卡数据格式化后恢复方法

在数字化时代,‌相机成为了我们记录生活、‌捕捉瞬间的重要设备。‌影石相机,‌以其出色的性能和便捷的操作,‌赢得了众多摄影爱好者的青睐。‌然而,‌在使用过程中,‌我们可能会遇到一些意外情况,‌如不小…

PTA L1-041 寻找250

L1-041 寻找250(10分) 对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。 输入格式: 输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“2…

828华为云征文:华为云 Flexus X 实例性能测评——SuperBench 一键窥见性能

今天我拿到了华为云 Flexus X 实例,这款云服务是华为云推出的有一款明星产品,面向零售、金融、游戏等行业大多数通用工作负载场景。这次,我们就来测评一下它的性能到底怎么样! Flexus 云服务 X 实例 在测评之前,我们…

星河产业应用创新奖,AI产业实干者的闪耀时刻

华晨宝马汽车有限公司搭建企业级 Agent 服务平台,推理成本降低50%(获2023年星河产业应用创新奖) 泰康保险集团股份有限公司实现保险理赔场景数字化升级,理赔作业效率提升27%(获2022年飞桨产业应用创新奖) …

【重学 MySQL】七、MySQL的登录

【重学 MySQL】七、MySQL的登录 MySQL 服务的启动与停止启动MySQL服务停止MySQL服务 MySQL 自带客户端的登录与退出登录登录步骤 退出注意事项 MySQL 服务的启动与停止 MySQL服务的启动与停止是数据库管理中的基本操作。 启动MySQL服务 通过“服务”窗口启动: 点击…

工作加速器:五种思维导图策略优化你的日常

思维导图是一种非常有效的图形工具,它能够清晰地展示发散性思维,并帮助我们将大量信息有序地组织起来。这种工具在日常生活和工作中都非常实用,因其简洁高效的特点,受到了广泛的欢迎。无论是在头脑风暴、项目规划,还是…

【AI-本地部署大模型】Centos虚拟机部署MaxKB、Ollama【基于大语言模型的知识库问答系统】

Ollama特点Centos部署docker部署脚本安装 通义千问包下载 MaxKB部署docker部署控制台 配置模型设置 Ollama Ollama 是一个开源项目,旨在让用户能够在本地计算机上轻松运行大型语言模型(LLM)。通过 Ollama,用户可以部署和运行多种…

显微镜基础知识--脑机起步

一、显微镜类别 学生级、实验级、研究级生物显微镜单目型、双目型、三目型生物显微镜 二、显微镜基础原理 (1)光学显微镜 光学显微镜主要由目镜、物镜、载物台和反光镜(集光镜)组成。目镜和物镜都是凸透镜,焦距不同。物镜的凸透镜焦距小于…

【算法每日一练及解题思路】计算以空格隔开的字符串的最后一个单词的长度

【算法每日一练及解题思路】计算以空格隔开的字符串的最后一个单词的长度 一、题目:计算以空格隔开的字符串的最后一个单词的长度 二、举例: 输入:hello nowcoder 输出:8 说明:最后一个单词为nowcoder,长…

PDF如何转化成Word文档?看完学会转换

PDF如何转化成Word文档?在数字化办公和学习的日常中,PDF文档因其出色的稳定性和跨平台兼容性而广受欢迎。然而,当我们需要编辑或修改PDF中的内容时,往往会遇到一些障碍,因为PDF格式本身并不支持直接编辑。这时&#xf…