gpt4 book ai didi

python - 设置 x 轴刻度的格式

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:25 25 4
gpt4 key购买 nike

我有以下代码可以生成表面密度图。x 和 y 是位置坐标,z 轴表示密度。所有值均预先计算并存储在 numpy 数组中。

    #set up the grid
xi, yi = np.linspace(x.min(), x.max(), 200), np.linspace(y.min(), y.max(), 200)
xi, yi = np.meshgrid(xi, yi)
#interpolate
rbf = scipy.interpolate.Rbf(x, y, z, function='linear')
zi = rbf(xi, yi)

plt.imshow(zi, vmin=z.min(), vmax=z.max(), origin='lower', extent=[x.min(), x.max(), y.min(), y.max()])
plt.scatter(x, y, c=z,marker='o')
plt.colorbar()
plt.scatter(xo,yo, c='b', marker='*')

plt.xlabel("RA(degrees)")
plt.ylabel("DEC(degrees)")
plt.title('Surface Density Plot 2.0 < z < 2.2')
plt.savefig('2.0-2.2.png', dpi= 300 )

plt.show()

我遇到的问题是 xaxis 刻度不是用户友好的术语,它们的值介于 150-152 之间,但我似乎无法使用 xticks() 函数更改刻度位置。有人可以建议我如何格式化 x 轴吗?

编辑-这些是用于绘图的 xyz 值。 x,y,z 是三个 numpy 数组 - https://www.dropbox.com/s/l03pkzplqmfm1su/xyz.csv第一行是 x 值,第二行是 y 值,第三行是 z 值。

最佳答案

使用 pyplot 接口(interface)时,您可以通过设置 xticks(前提是您将 matplotlib.pyplot 导入为 plt)

plt.xticks(*args, **kwargs)

您可以给出刻度位置,例如。作为列表或 numpy 数组,刻度标签作为元组(或列表,...)。

但是,请提供我们可以运行的最小代码示例,以便我们可以测试它是否正常工作,并查看为什么不正常(如果是这样的话)。另外,您似乎已将 matplotlib 作为 plt 导入,但某些命令(例如 xlabel)缺少 plt. 部分。这只是一个拼写错误或复制/粘贴错误吗?

如果您想要对刻度和刻度格式进行更多微调,您应该考虑使用 matplotlib 的 OO 接口(interface)。是的,它更冗长,您必须输入更多字母,但在我看来,代码变得更加清晰,并且您有更多可能性使图表适应您的期望。

编辑:据我从您的评论中了解到,您对 xtick 标签的格式不满意。因此,您可能想要“150.0”左右,而不是“0.0”“+1.5e2”。要查看的函数(使用 pyplot 接口(interface))是:

plt.ticklabel_format(**kwargs)

此处显示 kwargs here 。如果 style='plain' 符合您的要求,您应该尝试一下。

我想再次强调,OO 界面为您提供了更多的多功能性来更改刻度标签的格式。各自的功能是:

matplotlib.axes.yaxis.set_major_formatter()
matplotlib.axes.xaxis.set_major_formatter()

您可以在多个格式化程序之间进行选择,甚至可以编写自己的格式化函数。如果您想这样做,我可以给您进一步的建议。

关于python - 设置 x 轴刻度的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16183679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com