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

news2024/9/25 9:38:06

文章传送门

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()

输出:
请添加图片描述

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

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

相关文章

进程的创建与回收学习笔记

目录 一、进程内容: 二、进程常用命令 三、创建子进程 四、子进程进阶 五、进程的退出 六、进程的回收 一、进程内容: 程序: 存放在磁盘上的指令和数据的有序集合(文件) 静态的 进程: 执行一个程序所…

仓储库房温湿度监测解决方案——福建蜂窝物联

一、背景 1.1 现状 在实际应用中,仓储对环境变化非常敏感。例如医药行业中的冷库主要存放需要低温保存的试剂或物品,一旦温度、湿度发生变化,容易影响到产品质量。对于现在很多大型工厂或者物流基地来说,仓库无疑是存放物品的重…

Linux 内核学习 2 - 用户程序如何被塞进内核进行调度?

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。 fork里copy了父进程的信息,并激活task放到运行队列,当系统发生调度并获得执行机会时开始执行,但这时还不是hello程序…

LeetCode讲解篇之47. 全排列 II

文章目录 题目描述题解思路题解代码 题目描述 题解思路 初始化一个nums中元素是否被访问的数组used、记录还需要递归的深度deep,遍历nums,如果当前元素被访问过或者当前元素等于前一个元素且前一个元素没被访问过就跳过该次遍历,否则选择当前…

Colab 谷歌免费的云端Python编程环境初体验

最新在学习AIGC的过程中,发现很多教程,demo使用到了Colab这个谷歌工具。 Colab 是什么? Google Colab是一个强大且免费的云端Python编程环境,为学生、研究人员和开发者提供了一个便捷的平台来开展数据科学、机器学习和深度学习项…

大数据之谷歌文件系统论文 GFS The Google File System

原文地址 谷歌文件系统论文 摘要 我们设计并实现了Google文件系统,这是一个面向大规模分布式数据密集型应用的可扩展分布式文件系统。 它在廉价的通用硬件上运行,提供了容错性,并向大量客户端提供高聚合性能。 尽管与先前的分布式文件系统…

怎么理解接口幂等,项目中如何保证的接口幂等

都 2024 年了,竟然还有人不知道接口幂等是什么东西。 hi,大家好,我是 浮生 今天正好有空,给大家分享一下 幂等的实现。 什么是幂等? 一、问题解析 简单来说,就是一个接口,使用相同的参数重复执…

c++算法之二分

目录 二分法简介 解题步骤 整数二分 模板 例题 输入描述 输出描述 样例输入输出 解 浮点二分 模板 二分答案(最重要) 模板 例题 跳石头 题目描述 输入描述 输出描述 输入输出样例 解 例题 肖恩的苹果林 输入描述 输出描述 解 测…

GBASE南大通用数据库如何检索单行

SELECT 语句返回的行集是它的活动集。单个 SELECT 语句返回单个行。您可使用嵌入式 SELECT 语句来从数据库将单个行检索到主变量内。然而,当 SELECT 语句返回多行数 据时,程序必须使用游标来一次检索一行。在 检索多行 中讨论“多行”选择操作。 要检索单…

png格式图片怎么转换?分享3个转换的方法

随着互联网的普及和自媒体的发展,我们每天都会遇到各种图片格式,其中PNG格式因其透明背景和高质量的图像而受到广泛欢迎。然而,有时候我们需要将PNG格式的图片转换成其他格式以满足不同的需求。那么,如何轻松转换PNG格式的图片呢&…

在全志T113-i平台上实现H.265视频解码步骤详解

H.265,也被称为HEVC(HighEfficiency Video Coding),作为H.264的继任者,提供了更好的视频压缩和更高的视频质。H.265通过引入更多先进的编码技术,如更强大的运动估计和更高效的变换编码,对比H.264进行了改进。这些改进使…

代码随想录 Leetcode203. 移除链表元素

题目: 代码(首刷看解析 2024年1月11日): class Solution { public:ListNode* removeElements(ListNode* head, int val) {if(headnullptr) return nullptr;ListNode* BeforeHead new ListNode(0,head);ListNode* temp BeforeHead;while(te…

seata分布式事务(与dubbo集成)

1.seata是什么? Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 2.seata的注解 GlobalTransactional:全局事务注解,添加了以后可实现分布式事务的回滚和提交,用法与spring…

C语言从入门到实战——数据在内存中的存储方式

数据在内存中的存储方式 前言1. 整数在内存中的存储2. 大小端字节序和字节序判断2.1 什么是大小端2.2 为什么有大小端2.3 练习2.3.1 练习12.3.2 练习22.3.3 练习32.3.4 练习42.3.5 练习52.3.6 练习6 3. 浮点数在内存中的存储3.1 练习3.2 浮点数的存储3.2.1 浮点数存的过程3.2.2…

模拟退火算法(SA)解决旅行商(TSP)问题的python实现

旅行商问题 旅行商问题(Travelling Salesman Problem, 简记TSP,亦称货郎担问题):设有n个城市和距离矩阵D [dij],其中dij表示城市i到城市j的距离,i, j 1, 2 … n,则问题是要找出遍访每个城市恰好一次的一…

扫码看图怎么做轮播效果?多组图片用扫码查看的方法

图片通过二维码来做展示现在是很常见的一种方式,用这种方式可以用于多种图片格式。那么当我们需要将图片做成多个分组的轮播图样式展示时,有什么好的方法能够做成这个效果呢?下面就来教大家使用二维码生成器制作图片二维码的操作方法&#xf…

BioTech - 蛋白质结构、核酸结构、小分子构象的预测

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/135568438 生物结构预测是指根据生物分子的序列信息,推断其在空间中的三维形状和排列。生物结构预测对于理解生物分子的功能、相互作用…

LLM之RAG实战(十四)| 利用LongContextRetriver克服RAG中的中间丢失现象

人类和大型语言模型(LLM)都有一个共同的行为模式:他们往往擅长处理位于给定内容开头或结尾的信息,而中间的信息往往会被忽视。 来自斯坦福大学、加州大学伯克利分校和Samaya AI的研究人员在论文《Lost in the Middle: How Languag…

精确掌控并发:分布式环境下并发流量控制的设计与实现(一)

这是《百图解码支付系统设计与实现》专栏系列文章中的第(10)篇。 本篇主要讲清楚常用的并发流量控制方案,包括固定窗口、滑动窗口、漏桶、令牌桶、分布式消息中间件等,以及各种方案在支付系统不同场景下的应用。 在非支付场景&a…

【LabVIEW FPGA入门】使用LabVIEW FPGA进行编程并进行编译

在本文中会进行一个简单的FPGA编程演示,这通常可以验证编译工具链是否正常使用。在LabVIEW FPGA中和rt、PC编程一样使用数据流编程,但是需要注意的是FPGA中有些函数是不可以用的,因为这些函数很占用资源,且FPGA只能同时下载运行一…