【问题标题】:How do you convert axis tick values into scientific notation?如何将轴刻度值转换为科学计数法?
【发布时间】:2021-02-11 20:44:21
【问题描述】:

我正在尝试以科学计数法制作绘图的 x 轴,类似于 y 轴的自动格式化方式。这是我的代码

start=float(t_array_hr[0])
stop=float(t_array_hr[-1])
xticks=(np.linspace(start,stop,8))

plt.plot(t_array_hr,Mdot_hr)
plt.xlabel('Time (s)')
plt.ylabel('Mdot in Solar Masses/yr')
plt.title('Rate of Mass Loss vs Time')
plt.gca().invert_yaxis()
plt.xticks(xticks,xticks)
plt.show()

这是结果图。 (实际的图表没有显示,但我将其保留为一个单独的问题。)我需要 x 刻度清晰而不是重叠。

【问题讨论】:

    标签: python matplotlib jupyter axes


    【解决方案1】:

    您可以将自定义标签作为第二个参数传递给xticks()

    plt.xticks(xticks,[f'{x:.2e}' for x in xticks])
    

    【讨论】:

    • 最好使用定位器 + 格式化程序,而不是像这样的硬编码。
    • “更好”是主观的。我认为这种方式更容易理解和直接修改,这就是我建议的原因。也欢迎您提出解决方案。
    • @coreyp_1 致力于将每个值更改为科学计数法,但我仍然想知道是否可以将其格式化为 y 轴,并在轴的末尾显示 e^power每个刻度线只显示前两位数字?
    • @coreyp_1 更正:前 3 位(小数点后 2 位)
    • @lauchter 一个简单的切片可以为您提供每个字符串的前 4 个字符,但是您打算将科学记数法指示放在哪里?你试过什么?
    猜你喜欢
    • 2012-06-22
    • 2021-01-08
    • 1970-01-01
    • 2021-12-17
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    相关资源
    最近更新 更多