python - 是否可以设置更高的轴标签 z-index?

标签 python matplotlib

在以下代码中,轴的标签隐藏在图形线的后面:

import numpy as np
import matplotlib.pyplot as plt

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

plt.plot(X,C)
plt.plot(X,S)

plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
           [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])

plt.yticks([-1, 0, +1],
           [r'$-1$', r'$0$', 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))

for label in ax.get_xticklabels() + ax.get_yticklabels():
    label.set_fontsize(14)
    label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.75 ))

plt.show()

cos/sin

你可以看到,例如 -pi 很难看到。有没有办法将轴标签放在前面?

最佳答案

有一个rcParameter axes.axisbelow 正是这种行为:

axes.axisbelow: draw axis gridlines and ticks

  • below patches (True);
  • above patches but below lines ('line');
  • or above all (False)

如果你设置

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

在脚本的顶部,网格线和刻度线(标签)绘制在其他所有内容之上。结果看起来像

enter image description here

关于python - 是否可以设置更高的轴标签 z-index?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48327099/

相关文章:

python - 绘制 Pandas OLS 线性回归结果

Python - 从记录值拟合指数衰减曲线

python - 如何将 Z3_ast 导出为二进制文件以及如何在其中搜索函数名称?

Python网络爬虫,深度问题

python - 如何在python中实现引用列表?

python - 我如何知道如何正确使用方法来访问某些变量/数据集?

python - 使用 Seaborn 条形图分离(并保留)重复的分类数据?

Python - 使用 LSTM 循环神经网络和 Keras 进行模式预测

python - 使用 Binned X 值制作条形图 Python

python - Odoo 9 模块至 V10