我正在关注此链接以研究https://plot.ly/python/bar-charts/ 使用plotly在python中绘制图表。
根据我的要求,我有
形式的样本数据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) ,将使用四种不同的颜色。
我尝试过:我基本上尝试使用所示方法进行点击和试用,例如使用绘图离线图形对象获取两个数据值。但我无法绘制它。
任何人都可以提供有关这些数据的堆积直方图的建议。我必须在浏览器中查看生成的文件,我在离线模式下使用plotly。
我尝试了哪些代码:
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')
答案 0 :(得分:1)
您需要使用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')