如何在情节中使用这种科学记数法刻度?

Posted

技术标签:

【中文标题】如何在情节中使用这种科学记数法刻度?【英文标题】:How to use this kind of scientific notation tick in plotly? 【发布时间】:2021-06-07 16:17:07 【问题描述】:

我在 python 中使用 plotly,我试图在 X 和 Y 轴上使用这些类型的刻度: 10-3、10-4、10-5 等等……

有什么建议或推荐阅读吗?

我得到这个:

【问题讨论】:

不,轴上的符号...我正在获得类似 1e-3、1e-2 的东西。我想要指数符号 【参考方案1】:

我相信你会得到关闭是logartihmic axes:

import plotly.express as px
df = px.data.gapminder().query("year == 2007")

fig = px.scatter(df, x="gdpPercap", y="lifeExp", hover_name="country", log_x=True)
fig.show()

【讨论】:

我已经在用了!疑问与对数轴的表示有关【参考方案2】:

这一直困扰着我一段时间,这是我找到的最佳解决方案:

TLDR,您可以使用 html 格式来确保指数是上标,并使用 array 模式将刻度标签的字符串传递给 plotly。

import plotly.express as px
import numpy as np
df = px.data.gapminder().query("year == 2007")

fig = px.scatter(df, x="gdpPercap", y="lifeExp", hover_name="country", log_x=True)
tickvals = np.logspace(3,6, num=4)
print(tickvals)

def format_tick(n: float):
    m, e = f"n:.0e".split("e")
    e = int(e)
    return f"m x 10<sup>e</sup>"

ticktext = [format_tick(t) for t in tickvals]
print(ticktext)

fig.update_layout(
    xaxis = dict(
        tickmode = 'array',
        tickvals = tickvals,
        ticktext = ticktext,
    )
)
fig.show()

【讨论】:

以上是关于如何在情节中使用这种科学记数法刻度?的主要内容,如果未能解决你的问题,请参考以下文章

Python matplotlib colorbar 科学记数法库

matplotlib 中的科学记数法颜色条

matplotlib 中的科学记数法颜色条

Matplotlib:指定刻度标签的浮点格式

ggplot2 轴:设置间隔、对数刻度和指数而不是科学

如何在情节中使颜色条的刻度值不均匀