python - Matplotlib:如何在绘图上方设置刻度标签

标签 python matplotlib

Not good
这是我使用 matplotlib 绘制的正弦和余弦图。但刻度标签位于图下方,几乎看不到。

我的Python代码是:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8,6), dpi=96)
plt.subplot(111)

X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C,S = np.cos(X), np.sin(X)

plt.plot(X, C, color="blue", linewidth=2.5, linestyle="-", label="consine")
plt.plot(X, S, color="red", linewidth=2.5, linestyle="-", label="sine")

plt.xlim(X.min()*1.1, X.max()*1.1)
plt.ylim(C.min()*1.1, C.max()*1.1)

plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
          [r'$-\pi$', r'$-\frac{\pi}{2}$', r'$0$', r'$+\frac{\pi}{2}$', r'$+\pi$'])
plt.yticks([-1,  1],
          [r'$-1$', r'$+1$'])

ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

plt.legend(loc='upper left', frameon=False)


for label in ax.get_xticklabels()+ax.get_yticklabels():
    label.set_fontsize(16)
    label.set_bbox(dict(facecolor='green', edgecolor='None', alpha=0.2))


plt.savefig("figures/exercise10.png", dpi=120)
plt.show()

那么,我应该如何在绘图上方设置刻度标签?

Ideal effect

谢谢!

最佳答案

您可能想将标签和轴脊柱设置在线条的顶部。这可以通过“axes.axisbelow” rcParam轻松实现。

plt.rcParams["axes.axisbelow"] = False

enter image description here

关于python - Matplotlib:如何在绘图上方设置刻度标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51464527/

相关文章:

python - matplotlib:我可以创建 AxesSubplot 对象,然后将它们添加到 Figure 实例吗?

python - 如何使用 Django/Heroku 实现 301 重定向

python - 在进行评估时,是否应该将数据批处理移动到 CPU 并(从 torch Tensor)转换为 numpy 数组?培训期间的指标?

python - Face API,如何在Python中验证大量人脸

python - randrange() 的空范围 (1,1,0)

python - Matplotlib 具有相同类变量的多个动画

python - 查找两个日期时间点之间的所有数据

python - fill_between 和 fill_betweenx matplotlib 的区别

python - 有没有办法在没有箭袋的情况下绘制箭袋键或在 matplotlib 中隐藏箭袋?

python - pandas:通过将类方法应用于另一列(包含类)来填充列