[英]Bokeh how to make a trend line graph with error based on a pandas dataframe?
我正在尝试制作与此图相似的图:
到目前为止,我的尝试是:
from bokeh.io import show
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
import pandas as pd
from datetime import datetime
def date_(day):
return datetime(2018, 1, day)
df = pd.DataFrame(
{
"date": [date_(1),date_(2),date_(3),date_(4),date_(5),date_(6),date_(7),date_(8),date_(9),date_(10)],
"mean": [10,8,9, 11,12,6, 8,3,8,7],
"std": [2,1,3,2,1,4, 2,3,1,4]
})
df['mean_p_std'] = df['mean'] + df['std']
df['mean_m_std'] = df['mean'] - df['std']
source = ColumnDataSource(data=df)
plot = figure(x_axis_type="datetime", plot_width=800, plot_height=350)
plot.line('date', 'mean', source=source ,line_color='black', line_width=4)
plot.patch('date','mean_p_std',alpha=0.5, line_width=2, source=source)
plot.patch('date','mean_m_std',alpha=0.5, line_width=2, source=source)
show(plot)
我尝试计算上下边界,但没有正确
您必须在补丁中构建x
和y
数组。 它需要做一些附加。
>>> plot = figure(x_axis_type="datetime", plot_width=800, plot_height=350)
>>> plot.line('date', 'mean', source=source ,line_color='black', line_width=4)
>>> x = df['date'].append(df['date'].sort_index(ascending=False))
>>> y = df['mean_p_std'].append(df['mean_m_std'].sort_index(ascending=False))
然后绘制补丁:
>>> plot.patch(x=x, y=y, alpha=0.5, line_width=2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.