繁体   English   中英

散景如何基于熊猫数据框制作有误差的趋势线图?

[英]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)

在此处输入图片说明

我尝试计算上下边界,但没有正确

您必须在补丁中构建xy数组。 它需要做一些附加。

>>> 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.

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