Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python将日期轴打印为字符串而不是日期_Python_Plotly - Fatal编程技术网

python将日期轴打印为字符串而不是日期

python将日期轴打印为字符串而不是日期,python,plotly,Python,Plotly,我想使用python绘图创建一个条形图,x轴上的日期为字符串/类别。出于某种原因,plotly一直在将字符串转换为日期。我的x轴是连续的日期“时间线”,而不是我所期望的类别 我的问题是:如何构建一个条形图,将日期作为类别而不是日期处理 最简单的例子: d = {'date': ['2018-08-04', '2018-08-02','2018-08-03', '2018-08-11','2018-08-11'], 'score': [3, 4, 6, 2,8]} df = pd.DataFram

我想使用python绘图创建一个条形图,x轴上的日期为字符串/类别。出于某种原因,plotly一直在将字符串转换为日期。我的x轴是连续的日期“时间线”,而不是我所期望的类别

我的问题是:如何构建一个条形图,将日期作为类别而不是日期处理

最简单的例子:

d = {'date': ['2018-08-04', '2018-08-02','2018-08-03', '2018-08-11','2018-08-11'], 'score': [3, 4, 6, 2,8]}
df = pd.DataFrame(data=d)

data = [go.Bar(
            x=df['date'],
            y=df['score']
    )]

offline.iplot(data, filename='basic-bar')
例如:

阅读关于日期格式和时间序列的文章,似乎plotly会自动转换格式为日期的数据。。。约会

  • 您应该重新格式化数据,例如“2018-08-04”变为“2018/08/04”。但是你会有一个更基本的条形图,这意味着X间隔看起来不像现在那么好

  • 您始终可以手动重命名x轴,但对于您尝试执行的操作而言,这可能会有些过分。要做到这一点,我建议您执行
    pd.date\u range()
    ,这样您就可以获得一个具有plotly日期格式的日期列表,然后手动设置x标签


  • 您可以在
    布局设置中指定轴
    类型
    。绘图仪自动检测日期,但您可以通过设置
    type='category'
    覆盖日期

    import pandas as pd
    import plotly
    
    plotly.offline.init_notebook_mode()
    
    d = {'date': ['2018-08-04', '2018-08-02','2018-08-03', '2018-08-11','2018-08-11'], 
         'score': [3, 4, 6, 2,8]}
    df = pd.DataFrame(data=d)
    
    data = plotly.graph_objs.Bar(x=df['date'],
                                 y=df['score'])
    
    #the magic happens here
    layout = plotly.graph_objs.Layout(xaxis={'type': 'category'})
    
    fig = plotly.graph_objs.Figure([data], layout)
    plotly.offline.iplot(fig)