繁体   English   中英

Python中的堆积条形图

[英]Stacked Bar Plot in Python

我正在关注此链接以使用plotly研究python中的https://plot.ly/python/bar-charts/绘图图。

根据我的要求,我有以下表格的示例数据

data=[                                               
      ('2018-04-17','22:00:00',['p1',5],['p2',10],['p3',15]),
      ('2018-04-18','20:00:00',['p3',5],['p4',10],['p3',15])
     ]

因此,我想使用plotly创建此数据的堆叠条形图。 在X轴上,将绘制元组的前两个值(日期和时间)。

在y轴上,一个堆叠的图形具有三个与条形高度相关联的值(该值将在鼠标悬停时显示)。由于此数据中共有4个值(p1,p2,p3,p4),因此四个不同颜色将用于它们。

我尝试过的事情:我基本上使用显示的方法尝试了命中和尝试,例如使用绘图离线图形对象获取两个数据值,但是我无法绘制它。

任何人都可以为这些数据的堆叠直方图提供建议吗?我必须在浏览器中查看生成的文件,并且在离线模式下正在使用图。

我尝试了什么代码:

    import plotly
    import plotly.graph_objs as go

    plotly.offline.init_notebook_mode(connected=True)


    data=[                                               
          ('2018-04-17','22:00:00',['p1',5],['p2',10],['p3',15]),
          ('2018-04-18','20:00:00',['p3',5],['p4',10],['p3',15])
         ]


    x_axis=[]
    y_axis=[]
    plot_data=[]
    for d in data
        date,time=d[0],d[1]
        x_axis.append(d[0]+" "+d[1])
        for j in range (2, len(d))
            y_axis.append(d[j][1])

        trace[]=go.Bar(
                x=x_axis,
                y=y_axis)
        plot_data.append(trace)

    plotly.offline.plot(plot_data, filename='stacked-bar')

您需要使用figlayout layout ,将barmode设置为stack

import plotly
import plotly.graph_objs as go
plotly.offline.init_notebook_mode(connected=True)

data=[                                               
      ('2018-04-17','22:00:00',['p1',5],['p2',10],['p3',15]),
      ('2018-04-18','20:00:00',['p3',5],['p4',10],['p3',15])
     ]
x_axis=[]
y_axis=[]
plot_data=[]
for d in data:
    date,time=d[0],d[1]
    x_axis.append(d[0]+" "+d[1])
    for j in range (2, len(d)):
        y_axis.append(d[j][1])
        trace=go.Bar(
            x=x_axis,
            y=y_axis)
        plot_data.append(trace)
layout = go.Layout(barmode="stack")
fig = go.Figure(data=plot_data, layout=layout)
plotly.offline.plot(fig, filename='stacked-bar.html')

您的输出应如下所示: 是您要找的东西,是吗?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM