为何次级网格线未显示
我在绘图时遇到了一些麻烦,想要显示次级网格线(也就是那些比较细的线)。我在网上看到了一些相关的问题,比如这个提到可以用两个网格对象(一个用于主网格线,一个用于次网格线),还有这个建议添加minorticks_on
来解决这个问题。
不过,不知道为什么我用下面的代码还是看不到次级网格线,谁能帮我看看是什么问题吗:
from __future__ import division
from matplotlib import pyplot as plt
from math import log, sqrt
x = range(1, 20)
x_lin = x
x_log = [log(i) for i in x]
x2 = [sqrt(i) for i in x]
x2_exp = x
ax = plt.subplot(1,1,1)
p1 = ax.plot(x, x_lin, 'g--', label='linear', linewidth=2)
p2 = ax.plot(x, x_log, 'b-', label='log', linewidth=3)
p3 = ax.plot(x2, x2_exp, 'r-', label='exp', linewidth=3)
l1 = ax.legend()
g1 = ax.grid(b=True, which='both', color='k', linestyle='-')
g2 = ax.grid(b=True, which='minor', color='k', linestyle='--')
ax.minorticks_on
plt.show()
这是我得到的结果:
2 个回答
4
根据@M4rtini在这里给出的答案,这是修正后的代码和新的图片:
from __future__ import division
from matplotlib import pyplot as plt
from math import log, sqrt
x = range(1, 20)
x_lin = x
x_log = [log(i) for i in x]
x2 = [sqrt(i) for i in x]
x2_exp = x
ax = plt.subplot(1,1,1)
p1 = ax.plot(x, x_lin, 'g--', label='linear', linewidth=2)
p2 = ax.plot(x, x_log, 'b-', label='log', linewidth=3)
p3 = ax.plot(x2, x2_exp, 'r-', label='exp', linewidth=3)
l1 = ax.legend()
g1 = ax.grid(b=True, which='major', color='k', linestyle='-', linewidth=0.5)
g2 = ax.grid(b=True, which='minor', color='k', linestyle='-', linewidth=0.2)
ax.minorticks_on()
plt.show()
2
把 ax.minorticks_on
改成 ax.minorticks_on()