我在python中使用plotly,我尝试在X轴和Y轴中使用这些类型的刻度:10-3、10-4、10-5,等等。
有什么建议或推荐阅读吗?我得到这个:
d5vmydt91#
我相信你会得到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()
pftdvrlh2#
这一直困扰着我一段时间,这里是我找到的最好的解决方案:TLDR,您可以使用HTML格式来确保指数是上标,并使用array模式来传递字符串,以便绘制刻度标签。
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()
disho6za3#
我也在搜索这个功能,并在这个其他答案中找到了解决方案:https://stackoverflow.com/a/56742105/418875您应该将exponentformat设置为power选项。这将打印如下所示的刻度:
exponentformat
power
3条答案
按热度按时间d5vmydt91#
我相信你会得到logartihmic axes:
pftdvrlh2#
这一直困扰着我一段时间,这里是我找到的最好的解决方案:
TLDR,您可以使用HTML格式来确保指数是上标,并使用
array
模式来传递字符串,以便绘制刻度标签。disho6za3#
我也在搜索这个功能,并在这个其他答案中找到了解决方案:
https://stackoverflow.com/a/56742105/418875
您应该将
exponentformat
设置为power
选项。这将打印如下所示的刻度: