使用 plotly 创建条形图
create a bar chart using plotly
我正在尝试使用 plotly
创建条形图。
输入数据如下:
In [7]: datag.ix[:,0].tolist()[1:6]
Out[7]: [2020.0, 5000.0, 6010.0, 6017.0, 6020.0]
和
In [8]:datag.ix[:,1].tolist()[1:6]
Out[8]:
[0.005178087393490427,
0.0014053668695097226,
0.3174139251746979,
0.006049724003653125,
0.24824287385322272]
代码是
import plotly
import plotly.offline as offline
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Bar(
x=[str(x) for x in datag.ix[:,0].tolist()[1:6]],#datag.ix[:,0].tolist()[1:6],
y=datag.ix[:,1].tolist()[1:6],
name='travel'
)
data=[trace1]
layout= go.Layout(
barmode= 'stack',
title='Realization: 0, 0',
xaxis=dict(title='Model'),
yaxis=dict(title='Time (minutes)')
)
fig= go.Figure(data=data, layout=layout)
offline.plot(fig, image='png', filename='stacked-bar')
我得到以下输出:
但是,问题是我想像字符串一样演示 x 数据
我用 x=[str(x) for x in datag.ix[:,0].tolist()[1:6]]
试过。
有人可以帮我弄清楚怎么做吗?
绘制 'assumes' 您的数据类型,即使您提供字符串。为您的 xaxis
将 type
设置为 categorical
。 yaxis
在 layout
中应该可以解决问题。
import pandas as pd
import plotly.offline as offline
import plotly.plotly as py
import plotly.graph_objs as go
d = {'x': [None,
2020.0,
5000.0,
6010.0,
6017.0,
6020.0],
'y': [None,
0.005178087393490427,
0.0014053668695097226,
0.3174139251746979,
0.006049724003653125,
0.24824287385322272]}
datag = pd.DataFrame(data=d)
trace1 = go.Bar(
x=[str(x) for x in datag.ix[:,0].tolist()[1:6]],
y=datag.ix[:,1].tolist()[1:6],
name='travel')
data = [trace1]
layout = go.Layout(
barmode='stack',
title='Realization: 0, 0',
xaxis=dict(title='Model',
type='category'),
yaxis=dict(title='Time (minutes)'))
fig = go.Figure(data=data, layout=layout)
offline.plot(fig, image='png', filename='stacked-bar')
我正在尝试使用 plotly
创建条形图。
输入数据如下:
In [7]: datag.ix[:,0].tolist()[1:6]
Out[7]: [2020.0, 5000.0, 6010.0, 6017.0, 6020.0]
和
In [8]:datag.ix[:,1].tolist()[1:6]
Out[8]:
[0.005178087393490427,
0.0014053668695097226,
0.3174139251746979,
0.006049724003653125,
0.24824287385322272]
代码是
import plotly
import plotly.offline as offline
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Bar(
x=[str(x) for x in datag.ix[:,0].tolist()[1:6]],#datag.ix[:,0].tolist()[1:6],
y=datag.ix[:,1].tolist()[1:6],
name='travel'
)
data=[trace1]
layout= go.Layout(
barmode= 'stack',
title='Realization: 0, 0',
xaxis=dict(title='Model'),
yaxis=dict(title='Time (minutes)')
)
fig= go.Figure(data=data, layout=layout)
offline.plot(fig, image='png', filename='stacked-bar')
我得到以下输出:
x=[str(x) for x in datag.ix[:,0].tolist()[1:6]]
试过。
有人可以帮我弄清楚怎么做吗?
绘制 'assumes' 您的数据类型,即使您提供字符串。为您的 xaxis
将 type
设置为 categorical
。 yaxis
在 layout
中应该可以解决问题。
import pandas as pd
import plotly.offline as offline
import plotly.plotly as py
import plotly.graph_objs as go
d = {'x': [None,
2020.0,
5000.0,
6010.0,
6017.0,
6020.0],
'y': [None,
0.005178087393490427,
0.0014053668695097226,
0.3174139251746979,
0.006049724003653125,
0.24824287385322272]}
datag = pd.DataFrame(data=d)
trace1 = go.Bar(
x=[str(x) for x in datag.ix[:,0].tolist()[1:6]],
y=datag.ix[:,1].tolist()[1:6],
name='travel')
data = [trace1]
layout = go.Layout(
barmode='stack',
title='Realization: 0, 0',
xaxis=dict(title='Model',
type='category'),
yaxis=dict(title='Time (minutes)'))
fig = go.Figure(data=data, layout=layout)
offline.plot(fig, image='png', filename='stacked-bar')