matplotlib常用方法

news/2025/3/13 22:43:17/文章来源:https://www.cnblogs.com/CodeCraftsMan/p/18768862

目录
  • 安装库
  • 创建图画流程
    • 1. 创建画板
    • 2. 创建一个个在画板上的图形轴
    • 3. 开始在图上进行画画
      • 线图plot
      • 散点图scatter
      • 条形图bar、barh
      • 直方图hist
      • 饼图pie

安装库

pip install matplotlib

创建图画流程

1. 创建画板

在任何绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画板才能开始绘图。

import matplotlib.pyplot as plt
fig = plt.figure()#创建画板
plt.show()#显示画板

figure常用参数说明

  • figsize
    作用:设置图形的大小(宽度和高度)。
    类型:元组 (width, height),单位为英寸。
    plt.figure(figsize=(8, 6)) # 宽度为8英寸,高度为6英寸

  • dpi
    作用:设置图形的分辨率(每英寸的像素数)。
    类型:整数。
    默认值:100。
    plt.figure(dpi=150) # 设置分辨率为150

  • facecolor
    作用:设置图形的背景颜色。
    类型:颜色字符串或 RGB 元组。
    plt.figure(facecolor="lightgray")

2. 创建一个个在画板上的图形轴

  • plt.subplot(2,3,1)
    说明
    在创建了画板的基础上,使用subplot这个函数就可以创建图形轴了,类似于一张张画纸。上面的参数为2行3列,一共六个画纸,最后一个1代表着是第一个画质,以此类推
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(12, 6),tight_layout=True)
plt.subplot(2,3,1)
plt.subplot(2,3,2)
plt.subplot(2,3,3)
plt.subplot(2,3,4)
plt.subplot(2,3,5)
plt.subplot(2,3,6)
# plt.tight_layout()
plt.show()

效果如图:

3. 开始在图上进行画画

线图plot

基本使用方式:

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, np.pi)
y_sin = np.sin(x)
y_cos = np.cos(x)
fig=plt.figure()plt.subplot(1,2,1)
plt.plot(x, y_sin,color='red',marker='o',linestyle='dashed')
plt.subplot(1,2,2)
plt.plot(x, y_cos,color='red',marker='+',linestyle='dashed')
plt.tight_layout()
plt.show()

主要参数:

  • 设置刻度的方法
    • xlim
      设置 x 轴的显示范围(最小值和最大值)
      plt.xlim(left, right)
    • xticks
      设置 x 轴的刻度位置和标签。
import matplotlib.pyplot as pltplt.plot([1, 2, 3], [4, 5, 6])
plt.xticks([1, 2, 3], ['A', 'B', 'C'], rotation=45)  # 设置刻度位置和标签,并旋转45度
plt.show()
  • xlabel
    设置 x 轴的标签。
import matplotlib.pyplot as pltplt.plot([1, 2, 3], [4, 5, 6])
plt.xlabel('X Axis', fontsize=12, color='blue')  # 设置 x 轴标签
plt.show()

散点图scatter

import numpy as np
import matplotlib.pyplot as plt
x=np.random.randint(0,100,32)
y=np.random.randint(0,100,32)
fig=plt.figure()
plt.subplot(1,2,1)
plt.scatter(x,y,marker="*",color="red",alpha=0.3,label="scatter1")
plt.legend()
plt.subplot(1,2,2)
plt.scatter(x,y,edgecolors="red",color="blue",label="scatter2")
plt.legend()
plt.show()

效果如下:

条形图bar、barh

  1. bar的使用方法与参数说明
matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, align='center', **kwargs)x:
类型: 数组或标量
说明: 条形的 x 坐标。可以是单个值或一组值。height:
类型: 数组或标量
说明: 条形的高度。可以是单个值或一组值。width:
类型: 标量,默认值为 0.8
说明: 条形的宽度。bottom:
类型: 数组或标量,默认值为 None
说明: 条形的底部位置。可以用于堆叠条形图。align:
类型: 字符串,默认值为 'center'
说明: 条形的对齐方式。可以是 'center' 或 'edge'。**kwargs:
类型: 关键字参数
说明: 其他可选参数,如颜色、标签等。
如:
color: 条形的颜色。
edgecolor: 条形边缘的颜色。
linewidth: 条形边缘的宽度。
label: 条形的标签,用于图例。

代码演示

import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4]
height = [10, 20, 15, 25]# 绘制条形图
plt.bar(x, height, width=0.6, color='blue', edgecolor='black', label='Bar 1')# 添加标签和标题
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Bar Chart Example')# 显示图例
plt.legend()# 显示图形
plt.show()
  1. barh的使用方法与参数说明
matplotlib.pyplot.barh(y, width, height=0.8, left=None, align='center', **kwargs)
y:
类型: 数组或标量
说明: 条形的 y 坐标(垂直位置)。可以是单个值或一组值。width:
类型: 数组或标量
说明: 条形的宽度(水平长度)。可以是单个值或一组值。height:
类型: 标量,默认值为 0.8
说明: 条形的高度(垂直厚度)。left:
类型: 数组或标量,默认值为 0
说明: 条形的左侧起始位置。可以用于堆叠条形图。align:
类型: 字符串,默认值为 'center'
说明: 条形的对齐方式。可以是:
'center':条形以 y 坐标为中心。
'edge':条形以 y 坐标为边缘。color:
类型:字符串或颜色列表
说明: 条形的颜色。edgecolor:
类型: 字符串或颜色列表
说明: 条形边缘的颜色。linewidth:
类型: 标量
说明: 条形边缘的宽度。label:
类型: 字符串
说明: 条形的标签,用于图例。

举例

import matplotlib.pyplot as plt# 数据
y = ['A', 'B', 'C', 'D']  # 条形的 y 坐标
width = [10, 20, 15, 25]  # 条形的宽度# 绘制水平条形图
plt.barh(y, width, height=0.6, color='skyblue', edgecolor='black', label='Bar 1',alpha=0.3)# 添加标签和标题
plt.xlabel('Width')
plt.ylabel('Y-axis')
plt.title('Horizontal Bar Chart Example')# 显示图例
plt.legend()# 显示图形
plt.show()

效果如下图:

直方图hist

没心情写以后再说吧

饼图pie

参数说明:

def pie(self,x,explode: ArrayLike | None = None,labels: list | None = None,colors: ArrayLike | None = None,autopct: None | str | Callable = None,pctdistance: float = 0.6,shadow: bool = False,labeldistance: float | None = 1.1,startangle: float = 0,radius: float = 1,counterclock: bool = True,wedgeprops: dict | None = None,textprops: dict | None = None,center: tuple[float, float] = (0, 0),frame: bool = False,rotatelabels: bool = False,)
x:
类型: 数组或序列
说明: 输入数据,表示每个扇区的数值大小。explode:
类型: 数组或序列,可选
说明: 指定每个扇区的偏移量(突出显示)。例如,explode=[0.1, 0, 0, 0] 表示第一个扇区突出显示。autopct:
类型: 字符串或函数,可选
说明: 显示每个扇区的百分比。可以是格式化字符串(如 '%1.1f%%'表示保留一位小数,'%1.1f%%'表示保留两位小数)或自定义函数。shadow:
类型: 布尔值,默认值为 False
说明: 如果为 True,饼图将显示阴影。pctdistance: float = 0.6,
说明:数字的位置,越大距离圆心越远labeldistance: float | None = 1.1,
说明:配合labels标签,越大labels标签离圆心越远其他常规参数就不讲了,和前面一样

举例:

import numpy as np
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) fig1=plt.figure()
plt.subplot(1,2,1)
plt.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=True,colors=['red','green','blue','yellow'],labeldistance=1)plt.subplot(1,2,2)
plt.pie(sizes, autopct='%1.2f%%', shadow=True, startangle=90, explode=explode,pctdistance=1.12)plt.show()

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

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

相关文章

编译原理第三次作业

3.3.5(1) 正则表达式: define) other -> {bcdfghjklmnpqrstvwxyz} answer:other* a(other|a)* e(other|e)* i(other|i)* o(other|o)* u(other|u)* NFA: (由python代码生成,除了这个下面的DFA是基于开源工具绘制的)from graphviz import Digraphdef create_nfa():nfa = Digr…

第十二课 问答

这堂课的重点是谈一谈阅读理解(Reading Comprehension)解释一下两个例子信息提取:假设现在我们想要做一个关于奥巴马的背景信息提取,如图所示,我们现在想要知道奥巴马在哪里受的教育,我们将其转换成奥巴马在哪里毕业,然后进行阅读理解就好了 语义角色标注:假设现在我们…

Spring Task学习 -2025/3/13

Spring Task只要是需要定时处理的场景都可以使用Spring Task Cron 表达式cron在线表达式生成器 Spring Task 使用步骤示例

Rhino 8.12 下载与安装

Rhinoceros (Rhino) 是一款功能强大的 3D 建模软件,广泛应用于建筑设计、产品设计、工程分析、动画和插图等领域。Rhino 的建模主要基于曲线网络的构建,通过在空间中创建曲线网络并将其转换为曲面,用户可以实现高精度的 3D 模型设计。 1、安装包 扫描下方二维码关注「软知社…

.net微信支付接入

1.申请微信商户号 2.申请服务号 3.在商户号中接通服务号并且申请native支付 4.申请证书、密钥 5.nuget上安装“SKIT.FlurlHttpClient.Wechat.TenpayV3”包 6.发布到服务器时务必在应用程序池 - 应用程序 - 高级设置 - 加载用户配置文件 设置未true!!!!!否则会遇到下面的B…

HarmonyOS NEXT 实战系列01-ArkTS基础

​ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和性能。 ArkTS提供了声明式UI范式、状态管理、渲染控制等相应的能力,让开…

WebGame - 免费在线游戏,畅玩不停!

在快节奏的现代生活中,休闲娱乐成为了人们缓解压力的重要方式。无论是上班族、学生,还是游戏爱好者,大家都希望能够随时随地玩到好玩的游戏,而 WebGame(https://www.webgame.one/)正是这样一个理想的平台!WebGame - 免费在线游戏,畅玩不停! 在快节奏的现代生活中,休闲…

springboot的mapper层的小问题

①如果sql语句如上,在进行苍穹外卖的分类查询时,不会报错,对应的sql语句是 ②如果sql语句如下 对应的sql语句为 对于上面的情况,我觉得是系统前端的问题,因为在第二种情况下,可以进行状态的启用,但是进行状态的禁用时,其对应的status为空

SpringCloud学习笔记(1)

SpringCloud学习笔记(1)之前我们学习的项目一是单体项目,可以满足小型项目或传统项目的开发。而在互联网时代,越来越多的一线互联网公司都在使用微服务技术。 从谷歌搜索指数来看,国内从自2016年底开始,微服务热度突然暴涨:那么:到底什么是微服务? 企业该不该引入微服务…

SpringCloud学习笔记(2)

SpringCloud学习笔记(2)1.网关路由 1.1.认识网关 什么是网关? 顾明思议,网关就是网络的关口。数据在网络间传输,从一个网络传输到另一网络时就需要经过网关来做数据的路由****和转发以及数据安全的校验。 更通俗的来讲,网关就像是以前园区传达室的大爷。外面的人要想进入园…

2025年Postman的五大替代工具

虽然Postman是一个广泛使用的API测试工具,但许多用户在使用过程中会遇到各种限制和不便。因此,可能需要探索替代解决方案。本文介绍了10款强大的替代工具,它们能够有效替代Postman,成为你API测试工具箱的一部分。 什么是Postman?Postman是开发人员和测试工程师用来测试API…

基于pyqt5的开发环境搭建

1、安装python 3.11.5 2、升级pip python -m pip install --upgrade pip 3、安装PyQt5相关包 pip install PyQt5 pip install PyQt5-tools 4、配置pycharm------ 参考:https://blog.csdn.net/Pan_peter/article/details/130606896您的资助是我最大的动力! 金额随意,欢迎来赏!…