Matplotlib自定义刻度和网格分组

insrf1ej  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(85)

我正在尝试使用已定义的距离将自定义记号批量插入到图中。我可以通过手动添加它们来做到这一点,但我正在寻找更好的方法。

范例:

import matplotlib.pyplot as plt

x = [-5, 5]
y = [1, 5]
plt.plot(x, y)

plt.xlim(-10, 10)
plt.grid(axis="x", which='major', color='r', linestyle='--')

plt.yticks([])

# Adding custom ticks 
cticks = [-8, -7, -6, -5, 1, 2, 3, 4]
plt.xticks(cticks)

plt.show()

字符串
Resulting Plot
以下是我尝试过的:

import matplotlib.pyplot as plt
import numpy as np

x = [-5, 5]
y = [1, 5]
plt.plot(x, y)

plt.xlim(-10, 10)
plt.grid(axis="x", which='major', color='r', linestyle='--')
plt.xticks(np.arange(1 , 5, step=1))

plt.yticks([])

plt.show()


Resulting Plot
但这只给出了一批。

**问题:**是否有类似的方法,可以在x轴上的所需位置包含更多批次的刻度线和网格?

tf7tbtn2

tf7tbtn21#

IIUC,您不希望手动指定所有刻度,而只希望手动指定批次。你可以在一个循环中扩展cticks

import matplotlib.pyplot as plt

x = [-5, 5]
y = [1, 5]
plt.plot(x, y)

plt.xlim(-10, 10)
plt.grid(axis="x", which='major', color='r', linestyle='--')

plt.yticks([])

# Adding custom ticks
cticks = []
for n in [-8, 1]: # specify the beginning of each batch here
    cticks += range(n, n+4)
plt.xticks(cticks)

plt.show()

字符串
输出量:


的数据

相关问题