Python matplotlib库的使用

news2024/11/23 23:38:23

目录

画图的两种基本方式:

隐藏边框:

隐藏坐标系

 设置网格线

共享坐标轴

双坐标轴

设置坐标轴标签及刻度字体大小

设置坐标轴标签据离坐标轴距离

画点与线

标注文字

画不同大小的多个坐标系

 调节子图间距



导入库:

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

画图的两种基本方式:

1.面向对象方式 (OO-style):创建图或者图和坐标系,然后设置

fig = plt.figure()  # an empty figure with no Axes
fig, ax = plt.subplots()  # a figure with a single Axes
fig, axs = plt.subplots(2, 2)  # a figure with a 2x2 grid of Axes
x = np.linspace(0, 2, 100)  # Sample data.

fig, ax = plt.subplots(figsize=(5, 2.7), layout='constrained')
ax.plot(x, x, label='linear')  # Plot some data on the axes.
ax.plot(x, x**2, label='quadratic')  # Plot more data on the axes...
ax.set_xlabel('x label')  # Add an x-label to the axes.
ax.set_ylabel('y label')  # Add a y-label to the axes.
ax.set_title("Simple Plot")  # Add a title to the axes.
ax.legend();  # Add a legend.

2.pyplot方式:

x = np.linspace(0, 2, 100)  # Sample data.

plt.figure(figsize=(5, 2.7), layout='constrained')
plt.plot(x, x, label='linear')  # Plot some data on the (implicit) axes.
plt.plot(x, x**2, label='quadratic')  # etc.
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend();

 设置坐标系的边框

隐藏边框:

ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)

隐藏坐标系

fig,ax=plt.subplots(1,3,figsize=(12,2.5))
ax[1].axis('off')

 设置网格线

ax.grid(b=None, which='major', axis='both',color = 'color', linestyle = 'linestyle', linewidth = number)
  • b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true。
  • which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线。
  • axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向。
  • color:'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色,'#008000' RGB 颜色符串。

  • linestyle:'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线。

    linewidth:设置线的宽度,可以设置一个数字。

共享坐标轴

fig,[ax1,ax2]=plt.subplots(2,1,sharex=True)    #共享x轴
fig,[ax1,ax2]=plt.subplots(1,2,sharey=True)    #共享y轴

双坐标轴

import numpy as np

fig,ax=plt.subplots(figsize=(5,3))
ax2=ax.twinx()
data1=np.array(range(10))**2
data2=np.array(range(10))**3
ax.plot(data1,label='square_legend',color='red')
ax.tick_params(axis='y',labelcolor='red')
ax.set_ylabel('square',color='red')
ax2.plot(data2,label='cubic_legend',color='green')
ax2.tick_params(axis='y',labelcolor='green')
ax2.set_ylabel('cubic',color='green')
#合并图例,并将图例的右上角放在坐标系的(0.7,1)位置处
fig.legend(loc='upper right', bbox_to_anchor=(0.7,1), bbox_transform=ax.transAxes)

设置坐标轴标签及刻度字体大小

parameters = {'xtick.labelsize': 16,'ytick.labelsize': 16,'axes.titlesize': 18}    #修改参数
plt.rcParams.update(parameters)    #更新参数
#plt.rc('font',family='Times New Roman',size=20)    #设置字体类型,大小

设置坐标轴标签据离坐标轴距离

ax.set_xlabel('x label',labelpad=50)    #设置x轴标签据x轴距离为50点

画点与线

fig,ax=plt.subplots(figsize=(3,2))
ax.scatter([1,2],[3,4])
ax.vlines(x=1.5,ymin=3.25,ymax=3.75)
ax.hlines(y=3.5,xmin=1.25,xmax=1.75)
ax.plot([1,2],[4,3])

 

标注文字

fig,axes=plt.subplots(1,2,figsize=(8,2))
axes[0].set_xlim(0,10)
axes[0].set_ylim(0,10)
axes[1].set_xlim(0,10)
axes[1].set_ylim(0,10)
axes[0].text(4,5, "axes[0].transData:\n(4,5)", transform=axes[0].transData)
axes[1].text(0.1, 0.5, "axes[1].transAxes:\n(0.1, 0.5)", transform=axes[1].transAxes)
axes[1].text(0.14, 0.2, "fig.transFigure:\n(0.14, 0.2)", transform=fig.transFigure)

画不同大小的多个坐标系

import matplotlib.gridspec as gridspec
fig=plt.figure(figsize=(12,2.5))
gs = gridspec.GridSpec(1,5)
ax = fig.add_subplot(gs[0,0]),fig.add_subplot(gs[0,1:3]),fig.add_subplot(gs[0,3:])
ax[0].plot([4,3,2,1])

 调节子图间距

fig=plt.figure(figsize=(12,2.5))
gs = gridspec.GridSpec(1,5)
ax = fig.add_subplot(gs[0,0]),fig.add_subplot(gs[0,1:3]),fig.add_subplot(gs[0,3:])
ax[0].plot([4,3,2,1])
fig.tight_layout()

ref:

https://blog.csdn.net/weixin_44560088/article/details/107165510

Matplotlib 网格线 | 菜鸟教程

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

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

相关文章

【JavaSE】Java(五十):核心要点

文章目录 1. JDK 和 JRE 有什么区别2. \和 equals 的区别3. final 在java中有什么作用4. Java中的Math() 类有哪些常用方法5. String 属于基础数据类型吗? 1. JDK 和 JRE 有什么区别 JDK(Java Development Kit)和 JRE(Java Runtime Environ…

FusionCharts Suite XT 3.20.X Crack

3.20版# 2023年3月24日 新功能 FusionCharts 3.20版本引入了一种新方法_changeXAxisCordinates,它允许用户自动更改x轴,使其在图例或数据交互时居中对齐。 FusionCharts 3.20版本更新了Angular集成,支持Angular版本14和15。 FusionChart…

HTML (Hyper Text Markup Language)

目录 网页(html文件) 什么是HTML? web标准 为啥需要web标准 web标准的构成 VScode的使用 HTML标签 基本语法 标签关系 结构标签 课间拓展: 了解骨架代码 HTML中常见的标签 标题标签 注释标签 段落标签 换行标签 文本格式化标签 div 和span 标签 图像标签 …

【vulnhub靶场】MATRIX-BREAKOUT: 2 MORPHEUS

文章目录 描述:一、开启靶机信息收集二层发现三层探测信息整理:初步攻击basic爆破:已知漏洞利用文件上传 后渗透测试后渗透测试 描述: 这是《黑客帝国》系列的第二部,副标题是《沉睡魔咒:1》。它的主题是回到第一部《…

chatgpt赋能python:Python如何在图片上添加文字

Python如何在图片上添加文字 对于网站的SEO优化而言,图片上的文字也是非常重要的一环。而Python是一种常用的编程语言,可以通过一些Python库来在图片上添加文字。 PIL库介绍 PIL(Python Imaging Library)是Python中常用的图像处…

面对日益增加的网络安全风险,需要全面的API安全

全球商业界在过去几年中面临的挑战是前所未有的。流行病、通货膨胀、能源危机、战争、经济衰退以及供应链的碎片化和延误都给组织带来了问题,没有一个行业、市场或地区未受影响。 然而,尽管存在这些问题,我们的数字生态系统和足迹变得越来…

chatgpt赋能python:Python如何更改主题

Python 如何更改主题 Python 是一种非常强大的编程语言,能够适用于多种领域,包括数据分析、机器学习、Web 开发等。Python 社区为开发者提供了各种主题,这篇文章将介绍 Python 如何更改主题。 什么是主题? 主题是指编程环境的外…

Web服务器开发、文件上传

1 Stream的读写操作 2 http模块web服务 3 request请求对象 4 response响应对象 5 axios node中使用 6 文件上传的细节分析 前面一篇提到的内容是node对底层的文本操作,还没有涉及到从文本文件获取信息然后传递给客户端和如何响应客户端请求。这里开始了解如何实…

chatgpt赋能python:Python实现人脸识别的可能性和局限性

Python实现人脸识别的可能性和局限性 随着计算机视觉技术的不断发展,人脸识别技术也得到了广泛应用,其中Python作为一种高效、简洁和易于学习的编程语言,被广泛用于人脸识别算法的开发和实现。 什么是人脸识别? 人脸识别是一种…

chatgpt赋能python:Python如何导入CSV的完全指南

Python如何导入CSV的完全指南 CSV是一种常见的数据格式,在数据分析和处理中使用广泛。使用Python,我们可以轻松地读取、处理和分析CSV文件。在本指南中,我们将介绍如何使用Python导入CSV文件。 什么是CSV文件? CSV文件是按照逗…

chatgpt赋能python:Python如何将内容写进文件:从初学者到高级编程工程师的终极指南

Python如何将内容写进文件:从初学者到高级编程工程师的终极指南 Python是一种流行的编程语言,具有简洁而易于阅读的语法,开发人员可以非常方便地使用它来读取和写入文件。 本文将从基础到高级介绍使用Python将内容写入文件。 基础知识 在P…

论文笔记--Evaluating Large Language Models Trained on Code

论文笔记--Evaluating Large Language Models Trained on Code 1. 文章简介2. 文章概括3 文章重点技术3.1 评估3.2 模型训练--Codex3.3 微调模型--Codex-S3.4 微调模型--Codex-D 4. 文章亮点5. 原文传送门6. References 1. 文章简介 标题:Evaluating Large Languag…

chatgpt赋能python:Python构造函数详解

Python构造函数详解 在Python中,构造函数是一种特殊的函数,用于创建类的实例并初始化其属性。Python构造函数的名称为__init__,它在创建类的实例时自动调用。本篇文章将全面介绍Python构造函数的重要性及其使用方法。 为什么需要构造函数&a…

Python之并发编程协程

一、介绍 基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换保存状态 CPU正在运行一个任务,会在两种情况下切走去执行其他的任务&a…

从零手写操作系统之RVOS抢占式多任务实现-06

从零手写操作系统之RVOS抢占式多任务实现-06 多任务系统的分类抢占式多任务的设计代码任务切换流程分析系统启动任务mepc初始化首个被调度执行的任务任务切换 兼容协作式多任务软件中断编码实现 测试 注意点 本系列参考: 学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春 整理而…

QT QVerticalSpacer 弹簧控件

本文详细的介绍了QVerticalSpacer控件的各种操作,例如:新建界面、控件布局、隐藏控件、设置宽高、添加布局、其它参数、.h源文件、cpp源文件、其它文章等等操作。 实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既费…

chatgpt赋能python:Python如何优化SEO

Python如何优化SEO SEO是指搜索引擎优化,是提高网站在搜索引擎中排名的技术实践。Python是一种高效、易用、灵活的编程语言,可以被应用于SEO的优化过程中。 关键词优化 关键词是SEO过程中的重要元素,Python可以帮助我们快速优化关键词。以…

chatgpt赋能python:Python拆分:如何有效地拆分Python代码

Python拆分:如何有效地拆分Python代码 Python是一种简洁而优雅的编程语言,它拥有庞大的库,使得它可以轻松处理各种任务。然而,在开发大型项目时,代码可能会变得冗长而难以维护。 通过拆分代码,可以使得代码…

WhatWeb使用教程,图文教程(超详细)

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 WhatWeb 一、扫描网站指纹二、扫描强度三、扫描内网…

Golang每日一练(leetDay0088) 数组的乘积、搜索二维矩阵II

目录 238. 除自身以外数组的乘积 Product of Array Except Self 🌟🌟 240. 搜索二维矩阵 II Search A 2d Matrix ii 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每…