[英]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')
您需要使用fig
和layout
。 在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.