Matplotlib绘图设置---坐标轴刻度和标签设置
每个axes对象都有xaxis和yaxis属性,且xaxis和yaxis的每一个坐标轴都有主要刻度线/标签和次要刻度线/标签组成,标签位置通过一个Locator对象设置,标签格式通过一个Formatter设置。
plt.style.use('seaborn-whitegrid')
#x轴和y轴设置成对数显示尺度
ax = plt.axes(xscale='log', yscale='log')

#主刻度和次刻度标签位置对象Locator
print(ax.xaxis.get_major_locator())
print(ax.xaxis.get_minor_locator())
<matplotlib.ticker.LogLocator object at 0x0000021BD90A2308>
<matplotlib.ticker.LogLocator object at 0x0000021BD90A2508>
#主刻度和次刻度标签格式对象Formatter
print(ax.xaxis.get_major_formatter())
print(ax.xaxis.get_minor_formatter())
<matplotlib.ticker.LogFormatterSciNotation object at 0x0000021BD90A24C8>
<matplotlib.ticker.LogFormatterSciNotation object at 0x0000021BD99E97C8>
常用的定位器类和格式生成器类
| 定位器类 | 描述 |
|---|---|
| NullLocator | 无刻度 |
| FixdeLocator | 刻度位置固定 |
| IndexLocator | 用索引作为定位器(如 x = range(len(y)) |
| LinearLocator | 从min 到max 均匀分布刻度 |
| LogLocator | 从min 到 max 按对数分布刻度 |
| MultipleLocator | 刻度和范围都是基数(base)的倍数 |
| MaxNLocator | 为最大刻度找到最优位置 |
| AutoLocator | (默认)以MaxNLocator进行简单配置 |
| AutoMinorLocator | 次要刻度的定位器 |
| 格式生成器类 | 描述 |
|---|---|
| NullFormatter | 刻度上无标签 |
| IndexFormatter | 将一组标签设置为字符串 |
| FixedFormatter | 手动为刻度设置标签 |
| FuncFormatter | 用自定义函数设置标签 |
| FormatStrFormatter | 为每个刻度值设置字符串格式 |
| ScalarFormatter | (默认)为标量值设置标签 |
| LogFormatter | 对数坐标轴的默认格式生成器 |
隐藏刻度和标签
ax = plt.axes()
ax.plot(np.random.rand(50))
#y轴移除标签和刻度线
ax.yaxis.set_major_locator(plt.NullLocator())
#x轴移除标签,保留刻度线
ax.xaxis.set_major_formatter(plt.NullFormatter())

隐藏刻度和标签后的图像:

例子:
#创建5 * 5 的 (5 * 5)大小的窗格
fig, ax = plt.subplots(5, 5, figsize=(5, 5))
#行列空白设置为0
fig.subplots_adjust(hspace=0, wspace=0)
#从scikit-learn获取一些人脸照片数据
from sklearn.datasets import fetch_olivetti_faces
faces = fetch_olivetti_faces().images
for i in range(5):
for j in range(5):
#隐藏x和y轴刻度和标签
ax[i,j].xaxis.set_major_locator(plt.NullLocator())
ax[i,j].yaxis.set_major_locator(plt.NullLocator())
ax[i,j].imshow(faces[10 * i + j], cmap='bone')

增减刻度数量
fig, ax = plt.subplots(4, 4, sharex=True, sharey=True)
for axi in ax.flat:
#plt.MaxNLocator()设置最多的刻度数量
axi.xaxis.set_major_locator(plt.MaxNLocator(3))
axi.yaxis.set_major_locator(plt.MaxNLocator(3))
设置最多的刻度数量为3:

自定义刻度格式(FuncFormatter)
#画正弦曲线和余弦曲线
fig, ax = plt.subplots()
x = np.linspace(0, 3 * np.pi, 1000)
ax.plot(x, np.sin(x), lw=3, label='Sine')
ax.plot(x, np.cos(x), lw=3, label='Cosine')
#设置网格
ax.grid(True)
#设置图例
ax.legend(frameon=False)
#设置坐标轴等距
ax.axis('equal')
#设置x坐标轴上下限
ax.set_xlim(0, 3 * np.pi)

#自定义坐标标签
#使用美元符号$将LaTex字符串括起来,可以显示数学符号和公式:$\pi$
def format_func(value, tick_number):
# N * np.pi/2 = value , value为np.pi/2的倍数
N = int(np.round(2 * value / np.pi))
# 0点位置
if N == 0:
return "0"
# np.pi/2 的位置
elif N == 1:
return r"$\pi/2$"
# np.pi/2的位置
elif N == 2:
return r"$\pi$"
# np.pi/2 倍数的位置
elif N % 2 > 0:
return r"${0}\pi/2$".format(N)
# np.pi 倍数的位置
else:
return r"${0}\pi$".format(N // 2)
#plt.FuncFormatter()创建自定义的刻度格式对象
my_formatter = plt.FuncFormatter(format_func)
ax.xaxis.set_major_formatter(my_formatter)
fig

Matplotlib绘图设置---坐标轴刻度和标签设置的更多相关文章
- 用Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
一.用默认设置绘制折线图 import matplotlib.pyplot as plt x_values=list(range(11)) #x轴的数字是0到10这11个整数 y_values=[x* ...
- Matplotlib绘图双纵坐标轴设置及控制设置时间格式
双y轴坐标轴图 今天利用matplotlib绘图,想要完成一个双坐标格式的图. fig=plt.figure(figsize=(20,15)) ax1=fig.add_subplot(111) ax1 ...
- Python之坐标轴刻度细化、坐标轴设置、标题图例添加
学习python中matplotlib绘图设置坐标轴刻度.文本 http://www.jb51.net/article/134638.htm Python绘图 https://www.cnblogs. ...
- python库之matplotlib学习---关于坐标轴
首先定·定义x, y创建一个figure import numpy as np import matplotlib.pyplot as plt x = np.linspace(-1, 1, 10) y ...
- 【划重点】Python matplotlib绘图设置坐标轴的刻度
一.语法简介 plt.xticks(ticks,labels,rotation=30,fontsize=10,color='red',fontweight='bold',backgroundcolor ...
- matplotlib画图教程,设置坐标轴标签和间距
大家好,欢迎来到周四数据处理专题,我们今天继续matplotlib作图教程. 在上周的文章当中我们介绍了如何通过xlabel和ylabel设置坐标轴的名称,以及这两个函数的花式设置方法,可以设置出各种 ...
- matplotlib绘图教程,设置标签与图例
大家好,欢迎大家阅读周四数据处理专题,我们继续介绍matplotlib作图工具. 在上一篇文章当中我们介绍了matplotlib这个包当中颜色.标记和线条这三种画图的设置,今天我们同样也介绍三种新的设 ...
- Matlab绘图基础——axis设置坐标轴取值范围
peaks; axis tight %Set the axis limits to equal the range of the data axis square axis 'auto x' % ...
- 2018.04.02 matplotlib 图名,图例,轴标签,轴边界,轴刻度,轴刻度标签
import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame(np.random.r ...
- 使用matplotlib绘制常用图表(2)-常用图标设置
一.使用subplots绘制子图 import numpy as np from matplotlib import pyplot as plt %matplotlib inline x = np.a ...
随机推荐
- 【LeetCode剑指offer#06】实现pow函数、计算x的平方根
实现pow函数 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn ). 示例 1: 输入:x = 2.00000, n = 10 输出:1024.00000 示例 2: 输入:x ...
- 【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
问题描述 使用 .NET Azure.Identity 中的 DefaultAzureCredential 认证并连接到Azure Key Vault中, 在Key Vault 的示例中,并没有介绍如 ...
- android 混淆规则作用,Android代码混淆详解
一.混淆的意义 混淆代码并不是让代码无法被反编译,而是将代码中的类.方法.变量等信息进行重命名,把它们改成一些毫无意义的名字,同时也可以移除未被使用的类.方法.变量等. 所以直观的看,通过混淆可以提高 ...
- 6、mysql的SQL优化
1. 大批量插入数据 1) 主键顺序插入 因为InnoDB类型的表是按照主键的顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入数据的效率.如果InnoDB表没有主键,那么系统会自动默 ...
- java线程示例
需要开启线程 的方法继承线程类,并在run 中写逻辑 public class Ant extends Thread{ Cake cake; public Ant(String name,Cake ...
- Spring事务(二)-@Transactional注解
上一节说了Spring的事务配置,其中,声明式事务配置里有5种配置方式, @Transactional注解应该是最为常用的一种方式了.这一节就说说@Transactional注解. @Transact ...
- deepin平台安装debian的cao蛋时
我在deepin系统安装别的系统的时候,一直在boot界面无法进行下一步.困扰了我好几天,最后从电脑的左侧换成了电脑的右侧(usb)接口. 终于安装成功.你是......牛(deepin)
- Android WifiDisplay分析二:Wifi display连接过程
简介 这一章中我们来看Wifi Display连接过程的建立,包含P2P的部分和RTSP的部分,首先来大致看一下Wifi Display规范相关的东西. HIDC: Human Interface D ...
- 【专访蓝景科技】5G+实时云渲染赋能数字孪生,共建元宇宙
2021年伊始,元宇宙 概念不断扩展探讨与深入,国内外科技巨头扎堆布局元宇宙. 元宇宙第一股------ROBLOX 上市.字节跳动 90亿收购国内TOP1VR厂商PICO.FACEBOOK改名为 ...
- 记一次 .NET某游戏后端API服务 CPU爆高分析
一:背景 1. 讲故事 前几天有位朋友找到我,说他们的API服务程序跑着跑着CPU满了降不下去,让我帮忙看下怎么回事,现在貌似民间只有我一个人专注dump分析,还是申明一下我dump分析是免费的,如果 ...