Nat*_*sha 12 python legend bar-chart python-3.x plotly
我试图在 plotly,python 中绘制堆叠条形图时自定义图例的顺序。
data = [
go.Bar(
y=df['sid'], # assign x as the dataframe column 'x'
x=df['A'],
orientation='h',
name='A'
),
go.Bar(
y=df['sid'],
x=df['B'],
orientation='h',
name='B'
),
]
layout = go.Layout(
barmode='stack',
title=f'{measurement}',
xaxis=dict(
title='Count',
dtick=0),
yaxis=dict(
tickfont=dict(
size=10,
),
dtick=1)
)
fig = go.Figure(data=data, layout=layout)
plot(fig, filename='plot.html')
Run Code Online (Sandbox Code Playgroud)
图例的顺序以相反的顺序出现(即从下到上)。我想将data
.
我看到了此处为 java建议的选项。不确定如何在python中实现。
有人可以建议如何颠倒顺序吗?
编辑:在生成的图像中,图例的顺序是
B
A
Run Code Online (Sandbox Code Playgroud)
所需订单:
A
B
Run Code Online (Sandbox Code Playgroud)
sen*_*nce 17
您可以将traceorder
键用于图例:
确定图例项的显示顺序。如果为“正常”,则项目按照与输入数据相同的顺序从上到下显示。如果“反转”,则项目以与“正常”相反的顺序显示。如果“分组”,则项目按组显示(当提供跟踪时
legendgroup
)。如果“分组+反转”,则项目以相反的顺序显示为“分组”。
在您的情况下,您应该修改您的layout
定义:
layout = go.Layout(
barmode='stack',
title=f'{measurement}',
xaxis=dict(
title='Count',
dtick=0),
yaxis=dict(
tickfont=dict(
size=10,
),
dtick=1),
legend={'traceorder':'normal'})
)
Run Code Online (Sandbox Code Playgroud)
没有 traceorder 规范
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)
trace1 = go.Bar(x=['A', 'B', 'C'],
y=[20, 14, 23],
name='first')
trace2 = go.Bar(x=['A', 'B', 'C'],
y=[12, 18, 29],
name='second')
data = [trace1, trace2]
layout = go.Layout(barmode='stack',)
fig = go.Figure(data=data, layout=layout)
iplot(fig, filename='stacked-bar')
Run Code Online (Sandbox Code Playgroud)
使用 traceorder 规范
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)
trace1 = go.Bar(x=['A', 'B', 'C'],
y=[20, 14, 23],
name='first')
trace2 = go.Bar(x=['A', 'B', 'C'],
y=[12, 18, 29],
name='second')
data = [trace1, trace2]
layout = go.Layout(barmode='stack',
legend={'traceorder':'normal'})
fig = go.Figure(data=data, layout=layout)
iplot(fig, filename='stacked-bar')
Run Code Online (Sandbox Code Playgroud)
Ham*_*zah 11
您只能添加此行来反转图例标签的当前顺序:
fig.update_layout(legend_traceorder="reversed")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13128 次 |
最近记录: |