散景图无法正确绘制

问题描述 投票:0回答:1

以下代码不生成图表:

import pandas
import numpy as np
from bokeh.plotting import figure, show, output_file
from bokeh.io import output_notebook
from datetime import datetime

output_notebook()

TOOLS="hover,crosshair,pan,wheel_zoom,zoom_in,zoom_out,box_zoom,undo,redo,reset,\
    tap,save,box_select,poly_select,lasso_select,"

df = pandas.read_csv('./logs.csv')
df['datetime'] = pd.to_datetime(df['datetime'])
xvals = df['datetime'].dt.strftime('%Y-%m-%d')
yvals = df['datetime'].dt.strftime('%H:%M:%S')

p = figure(title="Test Title", width=500, height=500, \
           x_axis_type="datetime", y_axis_type="datetime", \
           x_range=(df.iloc[-1]['datetime'].strftime('%Y/%m/%d'),\
                    df.iloc[0]['datetime'].strftime('%Y/%m/%d')),\
           y_range=('00:00:00','23:59:59'),\
           tools=TOOLS)
p.scatter(xvals, yvals, alpha=0.5)
show(p)

生成的图表是空白图表。问题是什么?

编辑:

我更新了代码

xvals = df['datetime'].dt.date
yvals = df['datetime'].dt.time

p = figure(title="Activity history", width=800, height=500, \
           x_axis_type='datetime', y_axis_type='datetime',\
           x_axis_label="Date", y_axis_label="Time",\
           tools=TOOLS)

p.scatter(xvals, yvals, alpha=0.3)
show(p)

这会产生一个图表。

python pandas bokeh
1个回答
1
投票

好的,据我所知,这就是你想要的(使用一些项目样本数据,因为你没有提供任何东西来运行你的代码):

from bokeh.plotting import figure, show
from bokeh.sampledata.commits import data

p = figure(x_axis_type="datetime", y_axis_type="datetime")
p.circle(x=data.index, y=data.index.time)
show(p)

enter image description here

顾名思义,datetime轴类型将时间戳视为日期时间。即,这些被解释为大纪元第一年的第一天中的一小时。这就是轴开始和结束于1/01和1/02的原因。您可能希望使用customize the tick formatter来显示小时数。

作为参考,data看起来像这样:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.