如何使用 Plotly Express 和 Plotly 隐藏图例

Posted

技术标签:

【中文标题】如何使用 Plotly Express 和 Plotly 隐藏图例【英文标题】:How to hide legend with Plotly Express and Plotly 【发布时间】:2019-11-04 20:08:06 【问题描述】:

我正在尝试学习 Plotly,首先在 Plotly Express 中创建一个简单的条形图,然后使用 Plotly 对其进行更新以对其进行优化。我想隐藏图例。

我试图通过隐藏图例来更新原始图形,但我无法让它工作。 This is my traceback error.

还有我的代码

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")

This is what the chart looks like now with the legend。基本上,我希望右边那个可怕的传说消失

【问题讨论】:

【参考方案1】:

试试这个:

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_layout 包装在go.Layout() 中,该代码也可能有效。只需将 my_layout 保存为字典即可 至于plotly.express,试试fig.update_layout(showlegend=False)。所有的论点都是一样的。访问它们略有不同。

希望它对你有用。

【讨论】:

完美运行。谢谢! 这并不能完全回答这个问题 - 如何在 Plotly Express 中隐藏图例?【参考方案2】:

您的原始代码的问题是 fig.update() 没有将 fig 作为参数。该行可能只是fig.update(layout_showlegend=False)

【讨论】:

也可以通过fig.update_layout(legend="xanchor":"center", "yanchor":"top")自定义文档:plot.ly/python/reference/#layout-legend【参考方案3】:

在 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/

【讨论】:

以上是关于如何使用 Plotly Express 和 Plotly 隐藏图例的主要内容,如果未能解决你的问题,请参考以下文章

Plotly:如何使用 plotly express 在单迹散点图中显示图例?

如何在 Python 中更改 plotly.express 的颜色和大小?

如何使用字典中的 plotly express 创建(条形)图?

如何使用 Plotly Express 创建子图

Plotly:如何使用 plotly express 自定义 xaxis 刻度标签?

Plotly:使用 plotly express 行时如何在 hoverinfo 中格式化日期?