如何使用matplotlib在单个图上为yticks设置多个范围

时间:2018-12-25 14:48:18

标签: python python-3.x matplotlib

我正在尝试在情节中设置两个不同的限制,但是我没有获得任何成功。 对于单个范围,我知道我可以简单地使用plt.yticks(min_range,max_range,step=x),这会给我一个图,每个刻度之间有x差,但是我想要的是plt.yticks((0,2,step=0.1),(2,max_range,step=2)),,所以我想在图上有刻度在0和2之间的差值为0.1,之后的步长为2。 任何对此的帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用两个具有不同间距的数组来生成此类自定义的刻度值。然后,您可以将它们合并(concatenate)以获得单个数组,然后将它们分配给plt.yticks()。尽管y轴上的输出很难读取,但是您可以通过它来理清如何使其更具可读性。下面是一个简单的示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 7, 100)
y = x
tick1 = np.arange(0,2, 0.1)

tick2 = np.arange(2, 8, 2)
yticks = np.concatenate((tick1, tick2))

plt.plot(x, y)
plt.yticks(yticks);
plt.show()

enter image description here