layout - Plotly:仅在特定子图中堆积条形图
问题描述
我有两个带有两列的条形图,创建如下:
fig = tools.make_subplots(rows=1, cols=2)
trace1 = go.Bar(x=x1 , y=y1)
trace2 = go.Bar(x=x2, y=y2)
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 1)
trace3 = go.Bar(x=x3 , y=y3)
trace4 = go.Bar(x=x4, y=y4)
fig.append_trace(trace3, 1, 2)
fig.append_trace(trace4, 1, 2)
我只想要第二个带有堆叠条的子图。我尝试了以下
fig['layout']["xaxis2"].update(barmode='stack')
但这当然行不通。如何将“堆栈”属性仅应用于第二个子图而不是整个图形?
谢谢
解决方案
您可以使用offsetgroup = same
(堆叠的所有图形中的相同数字)。
在第二个酒吧base=(first bar y)
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=1, cols=2, shared_yaxes=True)
fig.add_trace(go.Bar(name='dogs', x=[1, 2, 3], y=[4, 5, 6],
marker_color='blue',
marker=dict(color=[4, 5, 6], coloraxis="coloraxis")),
row=1, col=1)
fig.add_trace(go.Bar(name='cats', x=[1, 2, 3], y=[1, 2, 3],
marker_color='yellow',
marker=dict(color=[4, 5, 6], coloraxis="coloraxis")),
row=1, col=1)
female_y = [4,5,6]
fig.add_trace(go.Bar(name='female', x=[1, 2, 3], y=female_y,
offsetgroup=1, marker_color='green',
marker=dict(color=[4, 5, 6])),
row=1, col=2)
fig.add_trace(go.Bar(name='male', x=[1, 2, 3], y=[2, 3, 5],
offsetgroup=1, marker_color='red',
base = female_y ,
marker=dict(color=[2, 3, 5])),
row=1, col=2)
fig.add_trace(go.Bar(name='others', x=[1, 2, 3], y=[1, 1.2, 2.5],
offsetgroup=2, marker_color='rgb(0,255,255)',
marker=dict(color=[2, 3, 5])),
row=1, col=2)
fig.show()
推荐阅读
- dataframe - 大型数据框上的 Pyspark groupBy
- python - Selenium 循环中的超时异常
- google-chrome - Chrome msi 安装程序更改目录
- sparql - SPARQL 选择剩余的三元组
- python - 使用 python 获取套接字/文件描述符中可用的字节数
- pyspark - 从状态到活动/更改的 pyspark 数据框
- java - 爪哇。从电子表格对象(列表列表)中获取值
- mqtt - 是否可以在没有 websocket 的情况下制作 mqtt 网页?
- android - Flutter-Firebase 身份验证登录按钮导航到第一个屏幕
- javascript - 如何显示在
element 一个数组(对象),显示在console.log 中?