Я хотел бы построить планки погрешностей (std) для моего точечно-линейного графика. Я не нашел правильного ответа, как это сделать, но одно из решений - использовать усы. https://docs.bokeh.org/en/latest/docs/user_guide/annotations.html#whiskers
Я работал у меня довольно хорошо, но у меня есть проблема, как изменить цвет головы усов.
Я использовал свойство цвет линии, чтобы изменить цвет линии: https://docs.bokeh.org/en/latest/docs/reference/models/annotations.html#bokeh.models.annotations.Whisker
но не изменил цвет головы (горизонтальная линия). Остается черный. Есть способ как это сделать? или есть лучший способ построить полосы погрешностей цветом линии?
Пример кода из боке с красными линиями и черными головками для полос ошибок:
from bokeh.models import ColumnDataSource, Whisker
from bokeh.plotting import figure, show
from bokeh.sampledata.autompg import autompg as df
colors = ["red", "olive", "darkred", "goldenrod", "skyblue", "orange", "salmon"]
p = figure(plot_width=600, plot_height=300, title="Years vs mpg with Quartile Ranges")
base, lower, upper = [], [], []
for i, year in enumerate(list(df.yr.unique())):
year_mpgs = df[df['yr'] == year]['mpg']
mpgs_mean = year_mpgs.mean()
mpgs_std = year_mpgs.std()
lower.append(mpgs_mean - mpgs_std)
upper.append(mpgs_mean + mpgs_std)
base.append(year)
source_error = ColumnDataSource(data=dict(base=base, lower=lower, upper=upper))
p.add_layout(
Whisker(source=source_error, base="base", upper="upper", lower="lower", line_color='red')
)
for i, year in enumerate(list(df.yr.unique())):
y = df[df['yr'] == year]['mpg']
color = colors[i % len(colors)]
p.circle(x=year, y=y, color=color)
show(p)