繁体   English   中英

如何从bokeh中的数据框制作折线图?

[英]How do I make a line graph from a dataframe in bokeh?

我正在bokeh中读取.csv文件,该文件有两列:一列用于日期,一列用于与该日期相对应的值。 我正在尝试使用x轴上的日期和y上的值制作线形图,但是它不起作用。 有任何想法吗?

码:

import pandas as pd
from bokeh.plotting import figure, output_file, show
from bokeh.models import ColumnDataSource
from datetime import datetime
from bokeh.palettes import Spectral3

output_file('output.html')

df = pd.read_csv('speedgraphak29.csv')
p = figure(x_axis_type="datetime")
p.line(x=df.dates, y=df.windspeed, line_width=2)


show(p)

它正在返回一个空图。 我该怎么办?

由于您没有提供输入数据的示例,因此我不得不进行补充。 您可能忘记了指定date列应解释为bigreddot指出的datetime值。 这是一个工作示例:

import pandas as pd
from bokeh.plotting import figure, output_file, show
from bokeh.models import ColumnDataSource
from datetime import datetime
from bokeh.palettes import Spectral3

output_file('output.html')

df = pd.DataFrame.from_dict({'dates': ["1-1-2019", "2-1-2019", "3-1-2019", "4-1-2019", "5-1-2019", "6-1-2019", "7-1-2019", "8-1-2019", "9-1-2019", "10-1-2019"], 'windspeed': [10, 15, 20,30 , 25, 5, 15, 30, 35, 25]})
df['dates'] = pd.to_datetime(df['dates'])
source = ColumnDataSource(df)
p = figure(x_axis_type="datetime")
p.line(x='dates', y='windspeed', line_width=2, source=source)

show(p)

您可以使用它。 假设您有一个名为sample_data.csv的CSV,其sample_data.csv DateAmount 只是为了补充Jasper所拥有的。

import pandas as pd
from bokeh.plotting import figure, output_file, show
from bokeh.models import ColumnDataSource



output_file('output.html')

df = pd.read_csv('sample_data.csv', parse_dates=['Date'])

source = ColumnDataSource(df)

p = figure(x_axis_type="datetime")
p.line(x='Date', y='Amount', line_width=2, source=source)

show(p)

在这种情况下,请以该列作为日期格式读取CSV 使用ColumnDataSource允许您使用高级功能,例如将ColumnDataSource悬停在图上以查看更多详细信息(如果需要)。 您也可以选择直接使用看起来像的列表。

p.line(x='my_list_of_dates', y='my_list_of_counts', line_width=2)

这将意味着阅读每一列并从中列出。 总而言之,使用ColumnDataSource可以让您直接按其名称调用列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM