Udało mi się wydrukować kilka zestawów danych i dopasowanych funkcji za pomocą Bokeh, ale naprawdę muszę dodać wykresy błędów, jak mogę to zrobić?Jak dodać paski błędów do wykresów Bokeh w python?
11
A
Odpowiedz
16
EDIT: To jest teraz wbudowany w Bokeh, zapoznać się z dokumentacją:
https://bokeh.pydata.org/en/latest/docs/user_guide/annotations.html#whiskers
i
https://bokeh.pydata.org/en/latest/docs/user_guide/annotations.html#bands
Zobacz https://stackoverflow.com/a/46517148/3406693 dla kompletnego przykładu.
Może trochę za późno, ale chciałem zrobić to dzisiaj.
Szkoda, że bokeh nie oferuje tej funkcji samodzielnie.
import numpy as np
from bokeh.plotting import figure, show, output_file
# some pseudo data
xs = np.linspace(0, 2*np.pi, 25)
yerrs = np.random.uniform(0.1, 0.3, xs.shape)
ys = np.sin(xs) + np.random.normal(0, yerrs, xs.shape)
output_file('bokeh_errorbars.html')
# plot the points
p = figure(title='errorbars with bokeh', width=800, height=400)
p.xaxis.axis_label = 'x'
p.yaxis.axis_label = 'y'
p.circle(xs, ys, color='red', size=5, line_alpha=0)
# create the coordinates for the errorbars
err_xs = []
err_ys = []
for x, y, yerr in zip(xs, ys, yerrs):
err_xs.append((x, x))
err_ys.append((y - yerr, y + yerr))
# plot them
p.multi_line(err_xs, err_ys, color='red')
show(p)
A ta jest wynikiem:
Jeden chcieć używać go jako funkcję jak ten:
def errorbar(fig, x, y, xerr=None, yerr=None, color='red',
point_kwargs={}, error_kwargs={}):
fig.circle(x, y, color=color, **point_kwargs)
if xerr:
x_err_x = []
x_err_y = []
for px, py, err in zip(x, y, xerr):
x_err_x.append((px - err, px + err))
x_err_y.append((py, py))
fig.multi_line(x_err_x, x_err_y, color=color, **error_kwargs)
if yerr:
y_err_x = []
y_err_y = []
for px, py, err in zip(x, y, yerr):
y_err_x.append((px, px))
y_err_y.append((py - err, py + err))
fig.multi_line(y_err_x, y_err_y, color=color, **error_kwargs)