python matplotlib坐标轴刻度设置

设置坐标轴刻度向内

作图默认的坐标轴刻度是向外的,但有些期刊要求刻度向内。
方法1
通过rcParams设置,类似的方式在设置中文字体时用过,但自己还不是特别熟,不知道会不会改变默认样式(似乎不会)。

plt.rcParams['xtick.direction'] = 'in'  # 将x轴的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in'  # 将y轴的刻度线方向设置向内

方法2
通过ax.tick_params中从参数direction来设置

'''
axis: x轴还是y轴
direction:"in" 向内,"out"向外
which:"major" 设置主轴参数,"minor"设置次轴参数,"both"l两个轴的参数一起设置
labelsize:设置刻度标签的字体大小
length:设置标签刻度的长度
'''
# y轴
ax.yaxis.set_minor_locator(yminor_1)
ax.yaxis.set_major_locator(ymajor_1)
ax.tick_params(axis="y", direction="in", which="minor", length=4)
ax.tick_params(axis="y", direction="out", which="major", labelsize=15, length=5)

设置主次刻度

参考链接 https://blog.csdn.net/Admiral_x/article/details/124778091
示例代码如下

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

x = np.arange(1, 100)
y = x**2

fig = plt.figure(figsize=(9, 6))
ax = fig.add_subplot(111)

# 准备 x/y轴刻度,以及刻度标签
# x轴
xmajor = MultipleLocator(10)  # 主 10 的倍数
xminor = MultipleLocator(2)  # 次 2的倍数
# y轴
ymajor_1 = MultipleLocator(2000)
yminor_1 = MultipleLocator(400)

# 设置 x/y轴刻度,以及刻度标签
# x 轴
ax.xaxis.set_minor_locator(xminor)
ax.xaxis.set_major_locator(xmajor)
ax.tick_params(axis="x", direction="in", which="minor", length=4)
ax.tick_params(axis="x", direction="out", which="major", labelsize=15, length=5)
'''
axis: x轴还是y轴
direction:"in" 向内,"out"向外
which:"major" 设置主轴参数,"minor"设置次轴参数,"both"l两个轴的参数一起设置
labelsize:设置刻度标签的字体大小
length:设置标签刻度的长度
'''
# y轴
ax.yaxis.set_minor_locator(yminor_1)
ax.yaxis.set_major_locator(ymajor_1)
ax.tick_params(axis="y", direction="in", which="minor", length=4)
ax.tick_params(axis="y", direction="out", which="major", labelsize=15, length=5)

ax.plot(x,y)
plt.show()

对数坐标

之前自己采用的方案是ax1.set_xscale('log')搭配plt.style.use(‘ggplot’)使用,显示效果更佳。之前写的链接。
其他可供选择方案如下

ax.semilogx
ax.semilogy
ax.loglog

其他关键参数

具体用法可查阅官方文档

ax.set_xticks
ax.set_yticks

from matplotlib import pyplot as plt
x=range(2,26,2)
y=[13,15,23,16,14,34,14,14,16,36,25,26]
fig=plt.figure(figsize=(20,8),dpi=80)#figsize是调整图片大小,dpi是调整图片清晰度
plt.plot(x,y)
#x,y轴刻度问题
plt.xticks(x)#其实也可以 plt.xticks(range(2,26)) 
plt.yticks(y)
#plt.savefig("./no1.png")#保存为svg图像格式 放大后不会有锯齿
plt.show()

你可能感兴趣的:(可视化,python,python)