当前位置: 首页 > news >正文

Python编程进阶知识之第五课处理数据(matplotlib)

简介

        matplotlib 是 Python 中最流行的数据可视化库之一,它可以创建各种高质量的图表。无论是简单的折线图,还是复杂的 3D 图形,matplotlib 都能轻松应对。它提供了类似 MATLAB 的绘图接口,使得用户可以非常方便地进行图表的创建和定制。

 matplotlib 的一些主要特点和功能:

        丰富的绘图功能: matplotlib 提供了多种绘图函数,可以绘制各种类型的图表,包括线图、散点图、柱状图、饼图、等高线图等。

        自定义设置: 用户可以对图表的各种属性进行自定义设置,如颜色、线型、标记、标题、坐标轴标签等。

        交互式绘图: matplotlib 支持交互式绘图,用户可以使用鼠标对图表进行缩放、平移等操作。

        多种输出格式: 用户可以将绘制的图表保存为多种格式的文件,包括 PNG、PDF、SVG 等。

        与 NumPy 和 Pandas 集成: matplotlib 可以与 NumPy 和 Pandas 库无缝集成,方便用户处理和可视化数据。

        支持多种绘图风格: matplotlib 提供了多种预定义的绘图风格,用户可以根据需要选择合适的风格。

        关于 matplotlib了解一点基础的画图方法就行,它就是为我们后面学习机器学习和深度学习提供一个简单的绘图工具

1.安装matplotlib

pip install matplotlib 

        后面也可以加上清华镜像园下载更快

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

2.matplotlib 绘制折线图

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

import matplotlib.pyplot as plt
import numpy as np# 准备数据
x = np.linspace(0, 10, 100)  # 生成0到10之间的100个均匀分布的点
y = np.sin(x)  # 计算正弦值# 创建图表和子图
plt.figure(figsize=(8, 4))  # 创建一个大小为8x4英寸的图表# 绘制图形
plt.plot(x, y, label='sin(x)')  # 绘制折线图# 设置图表属性
plt.title('Sin Function')  # 设置标题
plt.xlabel('x')  # 设置x轴标签
plt.ylabel('y')  # 设置y轴标签
plt.grid(True)  # 显示网格线
plt.legend()  # 显示图例# 显示图表
plt.show()

 

3. matplotlib 绘制散点图

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

import matplotlib.pyplot as plt
import numpy as np# 准备数据
x = np.random.rand(100)  # 生成100个0到1之间的随机数
y = np.random.rand(100)
colors = np.random.rand(100)  # 随机颜色
sizes = 1000 * np.random.rand(100)  # 随机大小# 绘制散点图
plt.figure(figsize=(8, 6))
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5)  # alpha表示透明度# 设置图表属性
plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
plt.colorbar()  # 显示颜色条plt.show()

 

4.matplotlib 绘制柱状图

柱状图用于比较不同类别之间的数据差异。

import matplotlib.pyplot as plt
import numpy as np# 准备数据
categories = ['A', 'B', 'C', 'D', 'E']
values = [25, 40, 30, 20, 45]# 绘制柱状图
plt.figure(figsize=(10, 6))
plt.bar(categories, values, color='skyblue')# 设置图表属性
plt.title('Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')plt.show()

 

5.matplotlib 绘制 饼图

饼图用于展示数据的比例关系。

import matplotlib.pyplot as plt# 准备数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0, 0.1, 0, 0)  # 突出显示第二个部分# 绘制饼图
plt.figure(figsize=(8, 8))
plt.pie(sizes, explode=explode, labels=labels, colors=colors,autopct='%1.1f%%', shadow=True, startangle=90)# 设置图表属性
plt.axis('equal')  # 使饼图为正圆形
plt.title('Pie Chart')plt.show()

 

6.matplotlib 绘制直方图

直方图用于展示数据的分布情况。

import matplotlib.pyplot as plt
import numpy as np# 准备数据
data = np.random.randn(1000)  # 生成1000个符合标准正态分布的随机数# 绘制直方图
plt.figure(figsize=(10, 6))
plt.hist(data, bins=30, alpha=0.7, color='skyblue')  # bins表示直方图的箱数# 设置图表属性
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')plt.show()

 

7.matplotlib 绘制多子图布局

matplotlib 允许在一个图表中创建多个子图,便于比较不同的数据。

使用 subplot 函数

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
y4 = np.sin(x ** 2)
y5 = np.arccos(x)
y6 = np.arctan(x)
fig, axs = plt.subplots(2, 3, figsize=(10, 8))
axs[0, 0].plot(x, y1, 'r')
axs[0, 0].set_title('sin(x)')
axs[0, 1].plot(x, y2, 'g')
axs[0, 1].set_title('cos(x)')
axs[1, 0].plot(x, y3, 'b')
axs[1, 0].set_title('tan(x)')
axs[1, 1].plot(x, y4, 'm')
axs[1, 1].set_title('sin(x^2)')
axs[0, 2].plot(x, y5, 'r')
axs[0, 2].set_title('arccos')
axs[1, 2].plot(x, y6, 'r')
axs[1, 2].set_title('arctan')
plt.show()

http://www.lryc.cn/news/599057.html

相关文章:

  • 星慈光编程虫2号小车讲解第二篇--向左向右平移
  • Linux join命令快速从大文件中匹配内容
  • C语言:20250724笔记(函数-指针)
  • STL学习(?map容器)
  • Linux 内核基础统简全解:Kbuild、内存分配和地址映射
  • 量子威胁下的区块链进化:后量子密码学时代的分布式账本革命
  • 《 java 随想录》| 数组
  • ollama无法拉取模型导致报错
  • Java并发编程第八篇(CountDownLatch组件分析)
  • Python Day15 面向对象核心特性笔记 及 例题分析
  • 深度学习(鱼书)day01--感知机
  • 基于CloudBase+React+CodeBudddy的云上智能睡眠应用开发实践
  • Rust与YOLO目标检测实战
  • rust-结构体使用示例
  • 论文阅读:《无约束多目标优化的遗传算法,群体和进化计算》
  • Eureka-服务注册,服务发现
  • SpringBoot航空订票系统的设计与实现
  • 华为OpenStack架构学习9篇 连载—— 01 OpenStack架构介绍【附全文阅读】
  • docker pull weaviate 国内拉取失败的问题
  • java中如何返回一个可以执行返回操作(return action)的函数或对象
  • rust-枚举
  • 技术赋能多元探索:我的技术成长与行业洞察
  • 【安卓笔记】lifecycle与viewModel
  • MySQL的底层原理--InnoDB记录存储结构
  • Ollama(5)服务接口压力测试
  • PostgreSQL 保留关键字冲突问题:语法错误 在 “user“ 或附近的 LINE 1: CREATE TABLE user
  • Windchill用SQL获取所有组织下的所有用户
  • CIRL:因果启发的表征学习框架——从域泛化到奖励分解的因果革命
  • Linux进程间通信:管道机制全方位解读
  • 【MediaTek】AN7563编译wlan_hwifi出现en_npu.c:42:10: fatal error: