是否可以在xaxis的顶部绘制xticklabel?

时间:2019-01-09 13:58:01

标签: python matplotlib alignment

我想在x轴的顶部绘制一个彩色星号标记特定的x轴位置。

我使用x-tick标签作为标记(因为我无法弄清楚是否可以在无花果坐标系中的任何地方放置标记),该标记已正确对齐,但在x轴下方绘制,因此被部分覆盖

MWE:

import numpy as np
import matplotlib.pyplot as plt

fig,ax=plt.subplots(1,1)

ax.scatter([-1,1],[1,1])
ax.set_xticks([0],minor=True)
ax.set_xticklabels(['*'],minor=True,color='r',fontsize=20,verticalalignment='center')

plt.setp(ax.spines.values(), linewidth=3)

plt.show()

这就是现在的样子:

enter image description here

2 个答案:

答案 0 :(得分:0)

您要寻找的是zorder参数。通过使用zorder = 0,您基本上可以定义绘图序列的堆叠顺序。 0将在背景中发送轴/框架,并根据需要在星号上方放置星号。我增加了星号的大小以突出显示它。

ax.scatter([-1,1],[1,1])
ax.set_xticks([0],minor=True)
ax.set_xticklabels(['*'],minor=True,color='r',fontsize=30,verticalalignment='center')

plt.setp(ax.spines.values(), linewidth=3, zorder=0)

或者,您也可以为两个绘图命令指定zorder,但为星号使用较高的zorder

ax.set_xticklabels(['*'],minor=True,color='r',fontsize=30,verticalalignment='center', zorder=2)
plt.setp(ax.spines.values(), linewidth=3, zorder=1)

enter image description here

答案 1 :(得分:0)

您可以在混合系统中指定散点的坐标(y轴的数据坐标和x轴的数据坐标)。
为了使散点标记位于棘刺上方,请将散点图的zorder属性设置为2.5以上。

import matplotlib.pyplot as plt

fig,ax=plt.subplots(1,1)

ax.scatter([-1,1],[1,1])
ax.scatter(0,0, s=100, marker="*", color="red", 
           transform=ax.get_xaxis_transform(), clip_on=False, zorder=3)

plt.show()

enter image description here