Bokeh также имеет класс Slope в своей документации для построения такой линии регрессии.Все, что вам нужно, это перехват и наклон, чтобы сделать это.Кроме того, я использую LinearRegression () из scikit-learn, но np.polyfit в ответе Joris, очевидно, тоже будет работать.
import numpy as np
from sklearn.linear_model import LinearRegression
from bokeh.models import Slope
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
output_notebook()
# Data
x=np.array([0,1,2,3,4,5,6,7,8])
y=np.array([1,2,3,5,4,6,8,7,9])
# Make and fit a linear regression model
model = LinearRegression().fit(x.reshape(-1, 1), y)
# x values need to be in a two-dimensional array, so use .reshape(-1, 1)
# Find the slope and intercept from the model
slope = model.coef_[0] # Takes the first element of the array
intercept = model.intercept_
# Make the regression line
regression_line = Slope(gradient=slope, y_intercept=intercept, line_color="red")
# Plot the data and regression line
fig=figure()
fig.circle(x, y)
fig.add_layout(regression_line)
show(fig)