17

我正在尝试通过首先在 Plotly Express 中创建一个简单的条形图,然后使用 Plotly 对其进行更新来完善它来学习 Plotly。我想隐藏传说。

我试图通过隐藏图例来更新原始图形,但我无法让它工作。这是我的回溯错误

还有我的代码

import plotly.plotly as py
import plotly.graph_objs as go
import plotly_express as px
import pandas as pd


df = pd.read_csv('C:/Users/Documents/Python/CKANMay.csv')

fig = px.bar(df, x="Publisher", y="Views", color="Publisher", barmode="overlay")

fig.update(fig, showlegend="false")

这就是带有图例的图表现在的样子。基本上,我希望右边那个可怕的传说消失

4

3 回答 3

14

在 plotly 创建图形后,要禁用图例,您可以使用以下命令:

fig.update_layout(showlegend=False)

对于高级用户:您还可以通过设置每条迹线的 showlegend 属性来启用/禁用图中各个迹线的图例。例如:

fig.add_trace(go.Scatter(
    x=[1, 2],
    y=[1, 2],
    showlegend=False))

您可以在此处查看示例:https ://plotly.com/python/legend/

于 2020-06-30T00:38:28.550 回答
12

试试这个:

my_data = [go.Bar( x = df.Publisher, y = df.Views)]
my_layout = go.Layout({"title": "Views by publisher",
                       "yaxis": {"title":"Views"},
                       "xaxis": {"title":"Publisher"},
                       "showlegend": False})

fig = go.Figure(data = my_data, layout = my_layout)

py.iplot(fig)
  • 该参数showlegend是您未在代码中指定的布局对象的一部分
  • 如果您不将布局对象包装my_layoutgo.Layout(). 它可以通过简单地保留my_layout字典来工作
  • 至于plotly.express,试试fig.update_layout(showlegend=False)。所有的论点都是一样的。访问它们略有不同。

希望对你有效。

于 2019-06-22T04:44:04.890 回答
8

您的原始代码的问题在于fig.update()它不能fig作为参数。那条线可能只是fig.update(layout_showlegend=False)

于 2019-06-23T00:58:43.433 回答