这种科学记数法如何在plotly中打勾?

问题描述 投票:0回答:4

我正在使用 python 绘制,并且我尝试在 X 和 Y 轴上使用这些类型的刻度: 10-3、10-4、10-5 等等..

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

我得到这个:

python graph plotly scientific-notation
4个回答
1
投票

我也在寻找这个功能,并在另一个答案中找到了解决方案:

https://stackoverflow.com/a/56742105/418875

您应该将

exponentformat
设置为
power
选项。这将打印刻度,如下所示:


0
投票

我相信你会得到的收盘价是对数轴

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()

0
投票

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

TLDR,您可以使用 HTML 格式来确保指数是上标,并使用

array
模式将刻度标签的字符串传递给绘图。

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()

0
投票

您没有提供代码示例,但总的来说

fig.update_xaxes(exponentformat = 'power')
fig.update_yaxes(exponentformat = 'power')

应该是您要寻找的。

© www.soinside.com 2019 - 2024. All rights reserved.