每个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绘图设置---坐标轴刻度和标签设置的更多相关文章

  1. 用Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围

    一.用默认设置绘制折线图 import matplotlib.pyplot as plt x_values=list(range(11)) #x轴的数字是0到10这11个整数 y_values=[x* ...

  2. Matplotlib绘图双纵坐标轴设置及控制设置时间格式

    双y轴坐标轴图 今天利用matplotlib绘图,想要完成一个双坐标格式的图. fig=plt.figure(figsize=(20,15)) ax1=fig.add_subplot(111) ax1 ...

  3. Python之坐标轴刻度细化、坐标轴设置、标题图例添加

    学习python中matplotlib绘图设置坐标轴刻度.文本 http://www.jb51.net/article/134638.htm Python绘图 https://www.cnblogs. ...

  4. python库之matplotlib学习---关于坐标轴

    首先定·定义x, y创建一个figure import numpy as np import matplotlib.pyplot as plt x = np.linspace(-1, 1, 10) y ...

  5. 【划重点】Python matplotlib绘图设置坐标轴的刻度

    一.语法简介 plt.xticks(ticks,labels,rotation=30,fontsize=10,color='red',fontweight='bold',backgroundcolor ...

  6. matplotlib画图教程,设置坐标轴标签和间距

    大家好,欢迎来到周四数据处理专题,我们今天继续matplotlib作图教程. 在上周的文章当中我们介绍了如何通过xlabel和ylabel设置坐标轴的名称,以及这两个函数的花式设置方法,可以设置出各种 ...

  7. matplotlib绘图教程,设置标签与图例

    大家好,欢迎大家阅读周四数据处理专题,我们继续介绍matplotlib作图工具. 在上一篇文章当中我们介绍了matplotlib这个包当中颜色.标记和线条这三种画图的设置,今天我们同样也介绍三种新的设 ...

  8. Matlab绘图基础——axis设置坐标轴取值范围

    peaks; axis tight  %Set the axis limits to equal the range of the data  axis square axis 'auto x'  % ...

  9. 2018.04.02 matplotlib 图名,图例,轴标签,轴边界,轴刻度,轴刻度标签

    import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame(np.random.r ...

  10. 使用matplotlib绘制常用图表(2)-常用图标设置

    一.使用subplots绘制子图 import numpy as np from matplotlib import pyplot as plt %matplotlib inline x = np.a ...

随机推荐

  1. jdk17新特性梳理

    jdk17新特性梳理 目录 jdk17新特性梳理 jdk8升级至jdk17新特性梳理 升级jdk17的理由 新特性梳理 可以在接口中定义私有方法,主要为了jdk8的default方法 局部变量可以使用 ...

  2. ubantu18.04使用APT安装go环境指令报错解决方案

    在ubantu下使用sudo apt install golang-go指令安装go环境,安装过程没有报错,在使用时无法识别指令,报错如下: root@sh001:~# go env -w GOPRO ...

  3. 用BootstrapBlazor组件制作新增Customer Order的页面

    1.在Shared目录下新建OrderCreateView.razor文件: 2.在OrderCreateView.razor里用最简单的表格准备好布局 3.准备好BootstrapBlazor的组件 ...

  4. SpringMvc-<context:component-scan>使用说明

    在xml配置了这个标签后,spring可以自动去扫描base-package下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把 ...

  5. chatGPT初体验

    chatGPT NLP技术,通过统计的手段模拟出更正确的答案. 他与以前的NLP不一样,他有上下文语义,他能够模拟场景,能够总结很多文章信息. 因此对于谷歌等搜索引擎就很有攻击性了,因为chatGPT ...

  6. 1 - RTOS简介&规范&任务创建

    对外部响应能力: 实时(规定时间内)操作系统 , 有强(飞机系统)弱(信息采集系统)之分 与分时(顺序时间片)操作系统 FreeRTO实时操作系统 支持抢占式调度,合作式调度和时间片调度:内核大小在4 ...

  7. MyBatis Java 和 Mysql数据库 数据类型对应表

    类型处理器(typeHandlers) MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Jav ...

  8. Linux下编译成静态库和动态库,引入到项目中

    目录 配置全局变量 编译动态库和静态库: 动态库编译 静态库编译 AS mk 方式加载静态库和动态库 配置build.gradle 加载静态库方法 将libget.a考入到项目中 配置Android. ...

  9. 如何在Docker容器启动时自动运行脚本

    本文分享自华为云社区<如何在Docker容器启动时自动运行脚本>,作者: 皮牙子抓饭. 如何在Docker容器启动时自动运行脚本 在使用Docker构建应用程序时,有时我们希望在启动Doc ...

  10. AMD、request.js,生词太多,傻傻搞不清

    前言 之前在公司用JS写前端页面,本来自己是一个写后端的,但是奈何人少,只能自己也去写了.但是自己对前端基本不懂,基本就是照着前人写的照着抄,反正大体意思是明白的,但是出现问题了,基本上也是吭哧吭哧好 ...