【Python数据可视化】matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值

文章传送门

Python 数据可视化
matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图
matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值
matplotlib之增加图形内容:设置图例、设置中文标题、设置网格效果
matplotlib之设置子图:绘制子图、子图共享x轴坐标
matplotlib之绘制高级图形:散点图、热力图、等值线图、极坐标图
matplotlib之绘制三维图形:三维散点图、三维柱状图、三维曲面图

目录

  • 简述 / 前言
  • 1. 添加坐标轴名字
  • 2. 设置坐标范围
  • 3. 设置主次刻度
  • 4. 坐标轴文字旋转并标出坐标值

简述 / 前言

之前画的图形只有坐标值,没有坐标轴文字,这篇文章将分享如何添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值。


1. 添加坐标轴名字

关键语句:matplotlib.pyplot.xlabel()matplotlib.pyplot.ylabel()

示例:

import matplotlib.pyplot as plt
import numpy as np

# 设置x轴和y轴的坐标
x = np.arange(0, 9, 2)  # [0, 9) 每间隔1个数取一次值,即:x = [0 2 4 6 8]
y = np.array([0, 1, 4, 6, 8])

plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--')  # 通过plot方法绘制折线
plt.xlabel('我是x轴')
plt.ylabel('我是y轴')
plt.show()  # 通过show方法展示

输出:
请添加图片描述

:可以看到输出的坐标轴名字有问题,中文字符乱码了,需要修改字体类型,改进代码如下:

示例1(修改全局字体——不太建议,因为有些符号不适配中文字体):

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

matplotlib.rcParams['font.family'] = 'FangSong'
matplotlib.rcParams['font.style'] = 'italic'
matplotlib.rcParams['font.size'] = 16

# 设置x轴和y轴的坐标
x = np.arange(0, 9, 2)  # [0, 9) 每间隔1个数取一次值,即:x = [0 2 4 6 8]
y = np.array([0, 1, 4, 6, 8])

plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--')  # 通过plot方法绘制折线
plt.xlabel('我是x轴')
plt.ylabel('我是y轴')
plt.show()  # 通过show方法展示

输出:
请添加图片描述

示例2(推荐——哪里要特定字体就设置哪里,还能多样化):
可以添加的常用属性有:

  • fontname : 字体名称
  • fontsize : 字体大小
import matplotlib.pyplot as plt
import numpy as np

# 设置x轴和y轴的坐标
x = np.arange(0, 9, 2)  # [0, 9) 每间隔1个数取一次值,即:x = [0 2 4 6 8]
y = np.array([0, 1, 4, 6, 8])

plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--')  # 通过plot方法绘制折线
plt.xlabel('我是x轴', fontname='FangSong')
plt.ylabel('我是y轴', fontname='FangSong', fontsize=16)

plt.show()  # 通过show方法展示

输出:
请添加图片描述

值得注意的是,标签还可以用 latex 格式书写,适用于一些数学公式,示例如下:
示例:

import matplotlib.pyplot as plt
import numpy as np

# 设置x轴和y轴的坐标
x = np.arange(0, 30, 0.1)
y = np.sin(x)  # 绘图

plt.plot(x, y, color='green', lw=3, linestyle='-')  # 通过plot方法绘制折线
plt.xlabel(r'这是$\rm{sinx}$函数的$x$轴标签', fontname='FangSong', fontsize=16)   # \rm{}将公式转化为roman体
plt.ylabel('我是y轴', fontname='FangSong', fontsize=16)
plt.xlim(-1, 31)
plt.ylim(-2, 2)
plt.show()  # 通过show方法展示

输出:
请添加图片描述

2. 设置坐标范围

如果想要修改坐标轴显示的范围,可以使用 xlim()ylim 方法。

关键语句:matplotlib.pyplot.xlim()matplotlib.pyplot.ylim()

示例:

import matplotlib.pyplot as plt
import numpy as np

# 设置x轴和y轴的坐标
x = np.arange(0, 9, 2)  # [0, 9) 每间隔1个数取一次值,即:x = [0 2 4 6 8]
y = np.array([0, 1, 4, 6, 8])

plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--')  # 通过plot方法绘制折线
plt.xlabel('我是x轴', fontname='FangSong', fontsize=16)
plt.ylabel('我是y轴', fontname='FangSong', fontsize=16)
plt.xlim(-2, 10)
plt.ylim(-2, 10)
plt.show()  # 通过show方法展示

输出:
请添加图片描述

值得注意的是,当你设置坐标范围后,超出设置坐标范围的图像将不会显示,所以一般都是不设置坐标范围的,除非有特定需求~

3. 设置主次刻度

  • 主刻度就是显示坐标轴数字的那个地方,比如我们买的尺子的 1,2,3,…cm。

  • 次刻度就是在两个主刻度之间再划分刻度,比如我们买的尺子在 1-1.5cm 之间有4个小竖线划分出5个小区间,这就是次刻度。

  • 主刻度显示数值,但是次刻度不显示数值!

  • x轴主刻度设置关键方法:matplotlib.pyplot.subplot().xaxis.set_major_locator()

    • x轴主刻度显示格式修改方法:matplotlib.pyplot.subplot().xaxis.set_major_formatter()
  • y轴主刻度设置关键方法:matplotlib.pyplot.subplot().yaxis.set_major_locator()

    • y轴主刻度显示格式修改方法:matplotlib.pyplot.subplot().yaxis.set_major_formatter()
  • x轴次刻度设置关键方法:matplotlib.pyplot.subplot().xaxis.set_minor_locator()

  • y轴次刻度设置关键方法:matplotlib.pyplot.subplot().yaxis.set_minor_locator()

示例:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FormatStrFormatter

xmajorLocator = MultipleLocator(5)  			# 将x轴主刻度设置为5的倍数
xmajorFormatter = FormatStrFormatter('%1.0f')  	# 设置x轴标签的格式
xminorLocator = MultipleLocator(1) 				# 将x轴次刻度设置为1的倍数
ymajorLocator = MultipleLocator(0.5)  			# 将y轴主刻度设置为0.5的倍数
ymajorFormatter = FormatStrFormatter('%1.1f')  	# 设置y轴标签的格式
yminorLocator = MultipleLocator(0.1)  			# 将y轴次刻度设置为0.1的倍数

x = np.arange(0, 30, 0.1)
# 设置子图,在ax里设置坐标轴刻度
ax = plt.subplot(111)
# 设置主刻度标签的位置,标签文本的格式
ax.xaxis.set_major_locator(xmajorLocator)
ax.xaxis.set_major_formatter(xmajorFormatter)
ax.yaxis.set_major_locator(ymajorLocator)
ax.yaxis.set_major_formatter(ymajorFormatter)

# 显示次刻度标签的位置
ax.xaxis.set_minor_locator(xminorLocator)
ax.yaxis.set_minor_locator(yminorLocator)
y = np.sin(x)  # 绘图
plt.plot(x, y)
plt.xlabel('x轴', fontname='FangSong', fontsize=16)
plt.ylabel('y轴', fontname='FangSong', fontsize=16)
plt.show()

输出:
请添加图片描述

4. 坐标轴文字旋转并标出坐标值

有时候坐标轴可能会显示日期,此时日期文字过长,我们可以旋转字体,使其看起来舒服一些~

  • 坐标轴文字旋转关键属性:rotation=rotation
  • 标出坐标值关键方法:matplotlib.pyplot.text()
    • 一般用法:matplotlib.pyplot.text(x, y, y, horizontalalignment=horizontalalignment, verticalalignment=verticalalignment, fontsize=fontsize)
    • 各属性含义如下:
      属性含义
      xx轴的点值
      yy轴的点值(第一个y是文字所在的坐标轴高度,第二个y是要显示的值)
      horizontalalignment垂直对齐方式,可以选:center, right, left
      verticalalignment水平对齐方式,可以选:top, bottom, center, baseline, center_baseline
      fontsize文字大小
      fontname文字样式名称
      fontweight字体粗细

示例:

import numpy as np
import matplotlib.pyplot as plt

# 折线图
x = np.array([1, 2, 3, 4, 5])
y = np.array([0, 1, 4, 6, 8])
plt.xticks(x, ('20240109', '20240110', '20240111', '20240112', '20240113'), rotation=45)
plt.yticks(np.arange(-1, 10.5, 0.5), rotation=30)
plt.ylim(-1, 10)

plt.plot(x, y, color='green', lw=3, marker='o', linestyle='--')
plt.xlabel('购买日期', fontname='FangSong', fontsize=16)
plt.ylabel('购买数量', fontname='FangSong', fontsize=16)
# 标出数值
for a, b in zip(x, y):
    plt.text(a, b+0.2, '%0.1f' % b, horizontalalignment='center', verticalalignment='bottom', fontsize=10)

plt.show()

输出:
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

02-Dapper

1.2:Dapper 1.2.1:设计要求 1、无处不在的部署: 任何服务都应该被监控到,任何服务出问题都要做到有据可查。2、持续的监控:做到7*24小时全天候监控,任何时候出了问题都要基于监控数据追踪问题根源。1.2.2…

基于SSM+JSP的订餐管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

WordPress企业模板

首页大图wordpress外贸企业模板 橙色的wordpress企业模板 演示 https://www.zhanyes.com/waimao/6250.html

如何领取腾讯云免费服务器?腾讯云服务器免费领取教程

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM,轻量配置可选2核2G3M、2核8G7M和4核8G12M,CVM云服务器可选2核2G3M和2核4G3M配置,腾讯云百科txybk.com分享2024年最新腾讯云免费服务器…

SAP SQVI制作报表及SE93创建事务代码

在平时的项目中,财务想查询所有的凭证明细,SAP的查询凭证FB03不能满足需求,所以用SQVI制作一个简易的查询报表。 1、打开SQVI,填写自开发报表的名称“ZFB03”,点击“创建”,输入自开发报表的名称“凭证明细…

79LXX 三端负电源电压调节器,具有一系列固定电压输出,适用于小于100mA电源供给的场合

79LXX系列三端负电源电压调节器是单片双极型线性集成电路,采用TO92、SOT89-3的封装形式封装,有一系列固定的电压输出,适用于小于100mA电源供给的场合。 主要特点: 最大输出电流为100mA 固定输出电压分别为-5V、-6V、-8V、-9V、-1…

回归预测 | Matlab基于SO-GRU蛇群算法优化门控循环单元的数据多输入单输出回归预测

回归预测 | Matlab基于SO-GRU蛇群算法优化门控循环单元的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-GRU蛇群算法优化门控循环单元的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SO-GRU蛇群算法优化门控循环单元的数…

7.11、Kali Linux中文版虚拟机安装运行教程

目录 一、资源下载准备工作 二、安装教程 三、kali linux换源 四、apt-get update 报错 一、资源下载准备工作 linux 中文版镜像历史版本下载:http://old.kali.org/kali-images/ 大家可以自行选择版本下载,本人下载的是2021版本 二、安装教程 打开vmvare wokst…

Canopen学习笔记——sync同步报文增加数据域(同步计数器)

1.Canfestival同步报文sync的设置 在OD表中的配置如下: 如果0x1006索引的同步报文循环周期时间设置为0则禁用同步报文,这里要注意的就是,上面第一张图也提到了,时间单位是us。第二张图,我的0x1006就设置为0xF4240,也就…

docker compose安装gitlab

环境 查看GitLab镜像 docker search gitlab 拉取GitLab镜像 docker pull gitlab/gitlab-ce 准备gitlab-docker.yml文件 version: 3.1 services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url…

HarmonyOS开发FA应用模型下多个页面的声明方式

目录 方式1 方式2 HarmonyOS配套的IDE是DevEco Studio,目前的版本是3.1。官网可以直接下载 HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 ​ 方式1 ​在DevEco Studio如果是在pages目录通过右键New->ArkTS File生成的文件,需要注意&…

PHP如何拆分中文名字(包括少数民族名字)

/*** param string|null $name* return array|null*/ function splitName($name) {if (empty($name) || empty(trim($name))) {return null;}//该正则是用来提取$name参数里面的中文字符的。preg_match_all(/[\x{4e00}-\x{9fff}]/u, $name, $matchers);$matchersCount isset($…

互联网医院系统|北京线上问诊|线上问诊系统功能解析

随着科技的不断发展,线上问诊系统作为一种快速、便捷的医疗服务方式在近年来越来越受欢迎。本文将重点介绍线上问诊系统的开发功能及其优势,帮助读者更好地了解这一医疗服务方式的价值和好处。 一、线上问诊系统的开发功能: 1、患者注册与登…

Ovtio不同版本下载

关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material , 更 \color{red}{更} 更 多 \color{blue}{多} 多 精 \color{orange}{精} 精 彩 \color{green}{彩} 彩! 主要专栏内容包括: †《LAMMPS小技巧》: ‾ \textbf…

企业如何做到安全又极速的分发传输大文件

在当代企业运营中,文件的传输和分发是至关重要的任务。然而,随着文件体积的增大和信息敏感性的凸显,企业需要找到一种既安全又能够高效传输大文件的方法。本文将深入探讨如何在企业环境中实现安全又高效的大文件传输。 一、分发大文件时需要注…

2023 我的编程之旅——路人贾‘ω‘

哈喽!大家好,我是路人贾😁~今天不读论文也不讲算法,来聊点有意思的! 这是我第100篇博文,我翻了几遍草稿箱的库存,正纠结选哪篇时,一抬头看见了这个活动,眼前瞬间一亮——…

【面试突击】分布式锁、幂等性问题实战

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

【数据结构之树和二叉树】

数据结构学习笔记---007 数据结构之树和二叉树概念篇1、树的概念和结构1.1、树的相关概念1.2、树的存储结构 2、二叉树概念及结构2.1、二叉树概念2.2、满二叉树2.3、完全二叉树2.4、满二叉树或完全二叉树的存储形式 3、堆的概念及结构3.1、堆的性质3.2、堆的意义 4、二叉树的存…

R语言【paleobioDB】——pbdb_map():根据化石记录绘制地图

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新,该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后,执行本地安装。 Usage pbdb_map (data, col.int"white" ,p…

宝塔面板安装MySQL8数据库

第一步:搜索mysql 第二步: 点击安装 我这里选择安装8版本 第三步:给宝塔配置mysql防火墙 第四步:修改数据库密码 第五步:想要使用navicat连接 需要修改root的权限 (1)使用secureCRT先登录mysql (2) 输入u…