python - 使用plotly创建条形图

标签 python plotly stacked-chart

我正在尝试使用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')

我得到以下输出: enter image description here 但是,问题是我想将 x 数据演示为字符串 我尝试使用 x=[str(x) for x in datag.ix[:,0].tolist()[1:6]] 。 有人可以帮我弄清楚怎么做吗?

最佳答案

即使您提供了字符串,Plotly 也会“假定”您的数据类型。设置type为您的 xaxis 分别设置为categoricallayout 中的 yaxis 应该可以解决问题。

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')

enter image description here

关于python - 使用plotly创建条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49628849/

相关文章:

python - 将文件中的普通数字转换为整数列表

python - 如何在pygame中显示由点组成的圆圈?

r - 向图表添加来源或标题

android - 如何在Android应用程序中绘制堆积条形图

python - 调试 Apache/Django/WSGI 错误请求 (400) 错误,然后别名子路径

python - 如何在python中获取前N个值

python - 如何在 Python 和 Plotly 中使用下拉菜单进行数据选择

python - 通过回调更新 Dash 数据表

python - 如何在条形图中连续显示累计计数(x轴没有空格)

javascript - D3.js 堆叠条形图向负方向增长