我也在寻找这个功能,并在另一个答案中找到了解决方案:
https://stackoverflow.com/a/56742105/418875
您应该将
exponentformat
设置为 power
选项。这将打印刻度,如下所示:
我相信你会得到的收盘价是对数轴:
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()
这已经困扰我一段时间了,这是我找到的最佳解决方案:
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()
您没有提供代码示例,但总的来说
fig.update_xaxes(exponentformat = 'power')
fig.update_yaxes(exponentformat = 'power')
应该是您要寻找的。