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

Python Matplotlib:基本图表绘制指南

Python Matplotlib:基本图表绘制指南

Matplotlib 是 Python 中一个非常流行的绘图库,它以简单易用和功能丰富而闻名,适合各种场景的数据可视化需求。在数据分析和数据科学领域,Matplotlib 是我们展示数据的有力工具。本文将详细讲解如何使用 Matplotlib 绘制常见图表,包括折线图、散点图、柱状图、饼图和直方图等。

在这里插入图片描述

1. Matplotlib 简介和安装

Matplotlib 是一个 Python 库,可以轻松绘制静态、动态和交互式图表。它提供了灵活的绘图功能,尤其在数据科学和数据分析领域应用广泛。

安装 Matplotlib

在安装 Python 环境后,可以使用 pip 安装 Matplotlib:

pip install matplotlib

安装完成后,可以通过以下方式导入 Matplotlib:

import matplotlib.pyplot as plt

2. 绘制基础图表

2.1 折线图(Line Plot)

折线图通常用于展示数据随时间的变化,或观察变量之间的关系。绘制折线图的基本语法如下:

import matplotlib.pyplot as plt# 定义数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]# 绘制折线图
plt.plot(x, y, marker='o', color='b', linestyle='-', linewidth=2, markersize=6)
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('折线图示例')
plt.grid(True)  # 添加网格
plt.show()
  • plt.plot:定义折线图的线条颜色、线型等。
  • marker:指定点的样式,例如 'o' 为圆形,'*' 为星形。
  • color:线条颜色,如 b 表示蓝色。
  • linestyle:线条样式,'-' 为实线。
  • grid(True):显示网格。
2.2 散点图(Scatter Plot)

散点图适合表示数据的离散分布情况,可用于发现变量之间的关系。绘制散点图的代码如下:

import matplotlib.pyplot as plt# 定义数据
x = [1, 2, 3, 4, 5, 6]
y = [2, 3, 4, 6, 7, 8]# 绘制散点图
plt.scatter(x, y, color='r', marker='x')
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('散点图示例')
plt.show()
  • plt.scatter:创建散点图,允许使用不同的点样式和颜色。
  • marker='x':指定点的样式为“x”形。
2.3 柱状图(Bar Chart)

柱状图用于比较不同类别的数据,可以是水平或垂直的。

import matplotlib.pyplot as plt# 定义数据
categories = ['A', 'B', 'C', 'D']
values = [10, 15, 7, 20]# 绘制柱状图
plt.bar(categories, values, color='skyblue')
plt.xlabel('类别')
plt.ylabel('值')
plt.title('柱状图示例')
plt.show()
  • plt.bar:创建柱状图,指定颜色、宽度等。
  • color:柱子的颜色,可以使用名称如 skyblue 或色号。
2.4 水平柱状图

水平柱状图与柱状图类似,但条形是横向的。

import matplotlib.pyplot as plt# 定义数据
categories = ['A', 'B', 'C', 'D']
values = [10, 15, 7, 20]# 绘制水平柱状图
plt.barh(categories, values, color='coral')
plt.xlabel('值')
plt.ylabel('类别')
plt.title('水平柱状图示例')
plt.show()
  • plt.barh:创建水平柱状图,与 bar 类似,但在 X 和 Y 轴的定义上有区别。
2.5 饼图(Pie Chart)

饼图主要用于展示各个部分占整体的比例。它在展示市场份额、人口分布等场景中常用。

import matplotlib.pyplot as plt# 定义数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
explode = (0, 0.1, 0, 0)  # 突出显示第二块# 绘制饼图
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.title('饼图示例')
plt.show()
  • explode:设置高亮的分离程度。
  • autopct='%1.1f%%':显示每个扇形的百分比。
  • shadow:添加阴影效果。

3. 高级图表

3.1 直方图(Histogram)

直方图通常用于展示数据的分布情况,比如查看数据在各个区间上的频率。

import matplotlib.pyplot as plt
import numpy as np# 生成随机数据
data = np.random.randn(1000)# 绘制直方图
plt.hist(data, bins=30, color='purple', edgecolor='black')
plt.xlabel('值')
plt.ylabel('频率')
plt.title('直方图示例')
plt.show()
  • plt.hist:绘制直方图。
  • bins=30:将数据分为 30 个区间。
  • edgecolor='black':设置条形边框颜色为黑色。
3.2 箱线图(Box Plot)

箱线图用于显示数据的离散分布和异常值情况,特别适合于对比不同组的分布。

import matplotlib.pyplot as plt
import numpy as np# 生成随机数据
data = [np.random.normal(0, std, 100) for std in range(1, 4)]# 绘制箱线图
plt.boxplot(data, patch_artist=True, notch=True)
plt.xlabel('组别')
plt.ylabel('值')
plt.title('箱线图示例')
plt.show()
  • patch_artist=True:填充箱体颜色。
  • notch=True:添加凹槽以标记中位数。
3.3 热力图(Heatmap)

热力图可以显示变量之间的相关性或密度分布,非常适合分析大规模数据的关系。

import matplotlib.pyplot as plt
import numpy as np# 生成随机数据
data = np.random.rand(10, 10)# 绘制热力图
plt.imshow(data, cmap='hot', interpolation='nearest')
plt.colorbar()  # 添加颜色条
plt.title('热力图示例')
plt.show()
  • cmap='hot':颜色映射设置为“热”色调。
  • colorbar():添加颜色条。

4. 图表的自定义与优化

4.1 设置图例

图例可以帮助我们更好地理解数据的含义。通过 plt.legend() 可以轻松添加图例。

import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 8, 27, 64, 125]# 绘制多条折线图
plt.plot(x, y1, label='平方', color='blue')
plt.plot(x, y2, label='立方', color='green')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('带图例的折线图')
plt.legend()  # 添加图例
plt.show()
4.2 使用子图(Subplot)

在一个窗口中显示多个图,可以使用 plt.subplot

import matplotlib.pyplot as plt# 创建 2x2 子图
plt.subplot(2, 2, 1)
plt.plot([1, 2, 3], [1, 4, 9])
plt.title('子图1')plt.subplot(2, 2, 2)
plt.bar([1, 2, 3], [1, 2, 3])
plt.title('子图2')plt.subplot(2, 2, 3)
plt.scatter([1, 2, 3], [1, 4, 9])
plt.title('子图3')plt.subplot(2, 2, 4)
plt.hist([1, 2, 3, 1, 2, 1])
plt.title('子图4')plt.tight_layout()  # 自动调整子图间的间距
plt.show()

5. 总结

通过本文的介绍,大家可以初步掌握 Matplotlib 的基本使用方法和各种常用图表的绘制技巧。

相关文章:

Python Matplotlib:基本图表绘制指南

Python Matplotlib:基本图表绘制指南 Matplotlib 是 Python 中一个非常流行的绘图库,它以简单易用和功能丰富而闻名,适合各种场景的数据可视化需求。在数据分析和数据科学领域,Matplotlib 是我们展示数据的有力工具。本文将详细讲…...

供应商图纸外发:如何做到既安全又高效?

供应商跟合作伙伴、客户之间会涉及到图纸外发的场景,这是一个涉及数据安全、效率及合规性的重要环节。供应商图纸发送流程一般如下: 1.申请与审批 采购人员根据需要提出发放图纸的申请并提交审批; 采购部负责人审批发放申请,确…...

探索 Move 编程语言:智能合约开发的新纪元

目录 引言 一、变量的定义 二、整型 如何在Move中表示小数和负数? 三、运算符 as运算符 布尔型 地址类型 四、什么是包? 五、什么是模块? 六、如何定义方法? 方法访问权限控制 init方法 总结 引言 Move 是一种专为区…...

vue3+vant实现视频播放(含首次禁止进度条拖拽,视频看完后恢复,保存播放视频进度,刷新及下次进入继续播放,判断视频有无全部看完等)

1、效果图 2、 <div><videocontrolsclass"video_player"ref"videoPlayer":src"videoSrc"timeupdate"handleTimeUpdate"play"onPlay"pause"onPause"ended"onVideoEnded"></video><…...

情感强度分析:精确衡量文本情感强弱的 AI 技术

情感强度分析&#xff1a;精确衡量文本情感强弱的 AI 技术 一、引言 在当今信息爆炸的时代&#xff0c;我们每天都会接触到大量的文本信息。这些文本中蕴含着各种各样的情感&#xff0c;如喜悦、悲伤、愤怒、恐惧等。如何准确地理解和分析这些文本的情感强度&#xff0c;对于…...

工厂方法模式与抽象工厂模式

工厂方法模式 (Factory Method) 定义&#xff1a; 工厂方法模式是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;但让子类决定实例化哪个类。工厂方法将类的实例化推迟到子类。 优点&#xff1a; 解耦&#xff1a;客户端代码与具体的产品类解耦…...

「Math」初等数学知识点大纲(占位待处理)

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

百元高性价比头戴式降噪耳机选哪款?四款平价性价比品牌别错过!

随着科技的发展&#xff0c;现在的头戴式耳机真的是越来越多样了&#xff0c;很多的朋友在选购耳机的时候&#xff0c;不知道哪一款头戴式耳机的性价比较高&#xff0c;究竟百元高性价比头戴式降噪耳机选哪款&#xff1f;身为一名数码爱好者&#xff0c;这里就给大家推带来四款…...

vue3 setup写不写到标签上的区别

在vue3种setup的写法&#xff0c;可以单独写setup()也可以写到script标签中&#xff0c;当然我们推荐后面这种 他的好处有很多&#xff0c;代码也简洁很多。1、属性和方法无需return&#xff0c;可直接使用 /*原先*/ <script> import { defineComponent } from "v…...

【论文解读】EdgeYOLO:一种边缘实时目标检测器(附论文地址)

论文地址&#xff1a;https://arxiv.org/pdf/2302.07483 这篇文章的标题是《EdgeYOLO: An Edge-Real-Time Object Detector》&#xff0c;由中国北京理工大学的Shihan Liu、Junlin Zha、Jian Sun、Zhuo Li和Gang Wang共同撰写。这篇论文提出了一个基于最新YOLO框架的高效、低复…...

xlwings,让excel飞起来!

excel已经成为必不可少的数据处理软件&#xff0c;几乎天天在用。python有很多支持操作excel的第三方库&#xff0c;xlwings是其中一个。 关于xlwings xlwings开源免费&#xff0c;能够非常方便的读写Excel文件中的数据&#xff0c;并且能够进行单元格格式的修改。 xlwings还…...

C语言学习,标准库 <stddef.h>

<stddef.h> C 标准库中头文件&#xff0c;它定义了一些常用的类型定义和宏。这些定义通常用于指针操作、数组处理和其他需要固定大小数据类型的场合。 size_t&#xff1a; 这是一个无符号整数类型&#xff0c;用于表示对象的大小&#xff08;以字节为单位&#xff09;。…...

PyQt5实战——操作台打印重定向,主界面以及stacklayout使用(四)

个人博客&#xff1a;苏三有春的博客 系类往期文章&#xff1a; PyQt5实战——多脚本集合包&#xff0c;前言与环境配置&#xff08;一&#xff09; PyQt5实战——多脚本集合包&#xff0c;UI以及工程布局&#xff08;二&#xff09; PyQt5实战——多脚本集合包&#xff0c;程序…...

React + Vite + TypeScript + React router项目搭建教程

一、创建项目 运行项目 二、目录结构 项目目录&#xff1a; ├─node_modules //第三方依赖 ├─public //静态资源&#xff08;不参与打包&#xff09; └─src├─assets //静态资源├─components //组件├─config //配置├─http //请求方法封装├─layout //页面…...

【ShuQiHere】️ 如何启用 SSH 服务

&#x1f6e0;️ 如何启用 SSH 服务 目录 基础概念 &#x1f331;检查是否已安装 SSH 服务 &#x1f50d;在不同操作系统上安装 SSH 服务 &#x1f4bb; LinuxWindows 11macOS 启动和启用 SSH 服务 &#x1f680;配置防火墙以允许 SSH 连接 &#x1f525;配置 SSH 服务&#…...

【自动化测试】APP UI 自动化(安卓)-本地环境搭建

一、软件准备及版本介绍 软件版本JAVA-SDK1.8.0_181 python 3.10.10 Android SDK Tools 下最新版本即可&#xff0c;无特殊要求 PyCharm 2023.3.5&#xff08;下最新版本即可&#xff0c;无特殊要求&#xff09; 二、安装步骤及环境变量配置 2.1 Java安装及配置 1&am…...

java毕业设计之基于Bootstrap的常州地方旅游管理系统的设计与实现(springboot)

项目简介 基于Bootstrap的常州地方旅游管理系统的设计与实现有下功能&#xff1a; 基于Bootstrap的常州地方旅游管理系统的设计与实现的主要使用者分为用户功能模块和管理员功能模块两大部分&#xff0c;用户可查看景点信息、景点资讯等&#xff0c;注册登录后可进行景点订票…...

《机甲崛起》

第一章&#xff1a;觉醒 在遥远的未来&#xff0c;地球的面貌已被人类科技彻底改变。蓝天被高耸的摩天大楼和闪烁的飞行器撕裂&#xff0c;城市的光辉仿佛能照亮整个星球。然而&#xff0c;繁华背后隐藏着深重的危机&#xff1a;生态环境的恶化、资源的匮乏&#xff0c;已成为…...

Windows10:Linux Reader

Linux Reader Access files and folders on Ext, UFS, HFS, ReiserFS, or APFS file systems from Windows DiskInternals 发布的 Linux Reader 是一款能在 Windows 系统环境下读取 Linux 分区文件的免费软件&#xff0c;提供了资源管理器式的浏览模式。它使用只读模式挂载 L…...

一、k8s快速入门之学习Kubernetes组件基础

一、三个容器管理器平台 Apache MESOS 开源的分布式资源管理框架&#xff0c;被推特选为基础平台&#xff0c;2019年推特换位k8s&#xff0c;MESOS最新版可以在MESOS上管理k8sDOCKER SWARM docker总部发行的&#xff0c;实现docker的集群方案&#xff0c;和docker捆版一起&…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...

相关类相关的可视化图像总结

目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系&#xff0c;可直观判断线性相关、非线性相关或无相关关系&#xff0c;点的分布密…...

STM32标准库-ADC数模转换器

文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”&#xff1a;输入模块&#xff08;GPIO、温度、V_REFINT&#xff09;1.4.2 信号 “调度站”&#xff1a;多路开关1.4.3 信号 “加工厂”&#xff1a;ADC 转换器&#xff08;规则组 注入…...

高效的后台管理系统——可进行二次开发

随着互联网技术的迅猛发展&#xff0c;企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心&#xff0c;成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统&#xff0c;它不仅支持跨平台应用&#xff0c;还能提供丰富…...

无头浏览器技术:Python爬虫如何精准模拟搜索点击

1. 无头浏览器技术概述 1.1 什么是无头浏览器&#xff1f; 无头浏览器是一种没有图形用户界面&#xff08;GUI&#xff09;的浏览器&#xff0c;它通过程序控制浏览器内核&#xff08;如Chromium、Firefox&#xff09;执行页面加载、JavaScript渲染、表单提交等操作。由于不渲…...

n8n:解锁自动化工作流的无限可能

在当今快节奏的数字时代&#xff0c;无论是企业还是个人&#xff0c;都渴望提高工作效率&#xff0c;减少重复性任务的繁琐操作。而 n8n&#xff0c;这个强大的开源自动化工具&#xff0c;就像一位智能的数字助手&#xff0c;悄然走进了许多人的工作和生活&#xff0c;成为提升…...

K8S认证|CKS题库+答案| 8. 沙箱运行容器 gVisor

目录 8. 沙箱运行容器 gVisor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、官网找模板 3&#xff09;、创建 RuntimeClass 4&#xff09;、 将命名空间为 server 下的 Pod 引用 RuntimeClass 5&#xff09…...