【发布时间】:2021-06-07 16:17:07
【问题描述】:
【问题讨论】:
-
不,轴上的符号...我正在获得类似 1e-3、1e-2 的东西。我想要指数符号
标签: python graph plotly scientific-notation
【问题讨论】:
标签: python graph plotly scientific-notation
我相信你会得到关闭是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()
【讨论】:
这一直困扰着我一段时间,这是我找到的最佳解决方案:
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()
【讨论】: