首页 > 解决方案 > 即使尝试了所有解决方案,X 轴次要网格线仍然没有显示

问题描述

我的 x 轴次要网格线没有显示,这是我的代码

ax = plt.gca()
ax.minorticks_on()
plt.semilogx(data_x1,data_y1,"red")
plt.semilogx(data_x2,data_y2,"blue")
ax.grid(b=True, which='major',axis="both", color='k', linestyle='-', linewidth=0.5)
ax.grid(b=True, which='minor',axis="both", color='k', linestyle='-', linewidth=0.2)
plt.xlabel("frequency(Hz)")
plt.ylabel("Iramp(dB)")
plt.show()

在此处输入图像描述

标签: pythonmatplotlib

解决方案


要么我不确定你想要什么,要么你的代码实际上工作正常。次要网格线是 10 次方之间的那些。我做了一个小例子来显示您的情节与打开和关闭次要网格线的比较。

import numpy as np
import matplotlib.pyplot as plt


data_x1  = np.linspace(0,2,10)
data_x2  = np.linspace(0,4,10)
data_y1  = np.random.rand(10)
data_y2  = np.random.rand(10)

fig, axall =plt.subplots(1,2, figsize=(10,5))

# your code with some changes
ax = axall[0]
ax.minorticks_on()
ax.semilogx(data_x1,data_y1,"red")
ax.semilogx(data_x2,data_y2,"blue")
ax.grid(b=True, which='major',axis="both", color='k', linestyle='-', linewidth=0.5)
ax.grid(b=True, which='minor',axis="both", color='k', linestyle='-', linewidth=0.2)
ax.set_xlabel("frequency(Hz)")
ax.set_ylabel("Iramp(dB)")

# code to make the plot on the right.
ax = axall[1]
ax.minorticks_on()
ax.semilogx(data_x1,data_y1,"red")
ax.semilogx(data_x2,data_y2,"blue")
ax.grid(b=True, which='major',axis="both", color='k', linestyle='-', linewidth=0.5)
# ax.grid(b=True, which='minor',axis="both", color='k', linestyle='-', linewidth=0.2)
ax.set_xlabel("frequency(Hz)")
ax.set_ylabel("Iramp(dB)")
plt.show()

请注意我是如何注释掉您的次要网格线的。

在此处输入图像描述


推荐阅读