这个错误是因为在使用 add_trace() 函数时,参数中使用了 xaxis 这个没有定义的关键字参数。

可能是因为你使用的是较旧版本的 Plotly 或者 Plotly Express,其中没有定义 xaxis 参数。

解决方法是将 xaxis 改为 x 即可,因为 xadd_trace() 函数中的标准参数。

例如,将下面的代码中的 xaxis 改为 x

import plotly.express as px

df = px.data.gapminder().query("year == 2007")
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent",
                 hover_name="country", log_x=True, size_max=60)
fig.add_trace(px.scatter(df, x="gdpPercap", y="lifeExp", size="pop", 
                          hover_name="country", log_x=True).data[0], xaxis="x2", yaxis="y2")
fig.update_layout(xaxis=dict(title="GDP per capita", titlefont=dict(color="#9467bd")),
                  yaxis=dict(title="Life expectancy", titlefont=dict(color="#9467bd")),
                  xaxis2=dict(title="GDP per capita, log scale", type="log", titlefont=dict(color="#9467bd")),
                  yaxis2=dict(title="Life expectancy", titlefont=dict(color="#9467bd")),
                  title="Gapminder",
                  font=dict(size=16, color="#7f7f7f"))
fig.show()

修改后的代码如下:

import plotly.express as px

df = px.data.gapminder().query("year == 2007")
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent",
                 hover_name="country", log_x=True, size_max=60)
fig.add_trace(px.scatter(df, x="gdpPercap", y="lifeExp", size="pop", 
                          hover_name="country", log_x=True).data[0], xaxis2="x2", yaxis="y2")
fig.update_layout(xaxis=dict(title="GDP per capita", titlefont=dict(color="#9467bd")),
                  yaxis=dict(title="Life expectancy", titlefont=dict(color="#9467bd")),
                  xaxis2=dict(title="GDP per capita, log scale", type="log", titlefont=dict(color="#9467bd")),
                  yaxis2=dict(title="Life expectancy", titlefont=dict(color="#9467bd")),
                  title="Gapminder",
                  font=dict(size=16, color="#7f7f7f"))
fig.show()

这样就可以正常运行了。

用了你给代码报错如下TypeError add_trace got an unexpected keyword argument xaxis

原文地址: https://www.cveoy.top/t/topic/bjgk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录