我正在使用Astropy WCS软件包对各种球形投影图进行大量工作,并且遇到了一些关于网格线的挫败感。由于网格线并不总是与图像边界框相交或多个相交在同一位置,因此它们可以不标记或使其标签难以辨认。我希望能够在每一行中插入网格线标签,非常类似于应用于等高线图的matplotlib.pyplot.clabel()函数,如此matplotlib example。因为我是新用户,我无法嵌入图像;我道歉。
我知道我可以使用text(),figtext()或annotate()来放置标签,但是由于clabel()有效,我认为功能已经存在,即使它还没有应用于网格线。除了投影图之外,是否有人知道类似于clabel()的在线网格线标签可以应用于普通矩形图上的网格线?
答案 0 :(得分:0)
要注释网格线,您可以使用主刻度线的位置(因为它们是创建网格线的位置)。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,10)
y = np.sin(x)*10
fig, ax = plt.subplots()
ax.plot(x,y)
ax.grid()
for xi in ax.xaxis.get_majorticklocs():
ax.text(xi,0.8, "{:.2f}".format(xi), clip_on=True, ha="center",
transform=ax.get_xaxis_transform(), rotation=90,
bbox={'facecolor':'w', 'pad':1, "edgecolor":"None"})
for yi in ax.yaxis.get_majorticklocs():
ax.text(0.86,yi, "{:.2f}".format(yi), clip_on=True, va="center",
transform=ax.get_yaxis_transform(),
bbox={'facecolor':'w', 'pad':1, "edgecolor":"None"})
plt.show()