首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Plotly-响应下拉菜单的并排虚线堆叠条形图

Plotly-响应下拉菜单的并排虚线堆叠条形图
EN

Stack Overflow用户
提问于 2019-03-20 23:32:37
回答 1查看 2.4K关注 0票数 2

我有以下数据帧:

--页面上显示用于选择问题的dcc.Dropdown --

代码语言:javascript
复制
Job  Tenure  Location  Topic
CSM   3-5    England   Budget cuts 
CSM   6-10   Scotland  Budget cuts
SA    0-2    India     Time consuming demands
SA    3-5    England   Lack of oversight
SA    6-10   Germany   Lack of support
MIA   11-15  India     Lack of support
ADCS  20+    England   Bureaucracy
MIA   16-20  Ireland   Bureaucracy
ADCS  20+    USA       Budget cuts

最终结果需要有三组图表。每组由两个并排堆叠的条形图组成。

下面是结果:

由并排的两条线组成的图形一:

bar 1=堆叠作业(height=9,堆栈由2xCSM、3xSA、2xMIA、2xADCS组成)

bar2 =问题按角色细分。例如,如果在下拉列表中选择了问题“预算削减”,则此图将为height=3,堆栈由2xCSM,1xADCS组成。

当您从下拉列表中选择问题时,栏2需要更新。因此,如果我现在选择问题‘缺乏监督’,条形图2的高度将是1,由作业1 x SA堆叠。

图2和图3将与上面相同,但分别针对保留期和位置,而不是工作。因此,在上述实例中为Job的所有实例中,堆栈都将是保留期/位置。

老实说,即使有人可以告诉我如何制作第一张图表,我也可以复制图表2和3的代码。我希望这是有意义的。

这是我得到的输出。我基本上希望这两个条在同一个轴上,而不是像这里一样分开(忽略高度值,因为我的df比我在这里给出的值大)。

谢谢你们。

EN

回答 1

Stack Overflow用户

发布于 2019-03-22 21:28:29

下面是一个简单的工作示例,改编自

代码语言:javascript
复制
import dash
import dash_core_components as dcc
import dash_html_components as html

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div(children=[
    html.H1(children='Hello Dash'),

    html.Div(children='''
        Dash: A web application framework for Python.
    '''),

    dcc.Graph(
        id='example-graph',
        figure={
            'data': [
                {'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
                {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
                {'x': [1, 2, 3], 'y': [5, 2, 6], 'type': 'bar', 'name': 'SF', 'xaxis': 'x2',},
                {'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': u'Montréal', 'yaxis': 'y2',},
            ],
            'layout': {
                'title': 'Dash Data Visualization',
                'xaxis': {'domain':[0, 0.5]},
                'xaxis2': {'domain':[0.6, 1]},
                'yaxis2': {'anchor': 'x2'}
            }
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

它应该输出类似这样的内容,

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55264554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档