【发布时间】:2019-10-15 11:53:47
【问题描述】:
我正在寻找一种从绘图轴上删除网格线的方法,但不幸的是,我还没有找到解决这个问题的方法,也没有在其他任何地方找到它。
有没有办法去除某些网格线或选择绘制哪些网格线而不必依赖自动功能?
我已经编写了一个快速示例,输出了一个绘图以用于下面的说明,并且很乐意提供任何帮助。
import matplotlib.pyplot as plt
import numpy as np
def linear(x, a, b):
return a*x+b
x = np.linspace(0, 1, 20)
y = linear(x, a=1, b=2)
fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(10, 6))
ax.plot(x, y, color='darkred')
ax.set_xlim(0, 1)
ax.set_ylim(2, 3)
ax.grid(which='major', axis='y', linestyle='--', color='grey', linewidth=3)
plt.savefig("Testplot.pdf", format='pdf')
【问题讨论】:
-
我想一定有一个聪明的方法来删除边界
2.0和3.0的网格线。但是,我认为没有一个可以特别删除特定行。您对水平线和轴刻度定位的实现感兴趣吗? -
是的,这对我来说听起来不错。对于刻度,我使用
xaxis.set_tick_params、set_xticks和set_xticklabels,但我不知道如何为网格线实现所需的输出。 -
看我的提议。请注意,您可以定义要在绘图的一部分上绘制的水平线,例如在
x1和x2之间。
标签: python matplotlib grid gridlines