У меня есть 2 фрейма данных, 1 для среднего и стандартного отклонения, и я пытаюсь превратить их в гистограмму в боке с ошибками, но я застрял в том, как группировать ?? «Дизайн» и лечение ».
По сути, я пытаюсь получить 3 бара на значение x (от T0 до T2). Легенда должна показывать что-то вроде: «мышь-да», «мышь-нет» и «кошка-нет». Как мне реструктурировать dict или dataframe, чтобы преобразовать что-то для vbar? И как мне связать это с фреймом данных stdev?
Кроме того, есть ли способ, чтобы x_range на рисунке автоматически брал все исходные значения из столбца «Время»? Я хотел бы иметь возможность поменять местами столбцы «Время», «Дизайн» и «Обработка» для оси X. Я предполагаю, что именно здесь пригодится сводная таблица.
from bokeh.core.properties import value
from bokeh.io import show, output_file
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
from bokeh.transform import dodge
output_file("dodged_bars.html")
import pandas as pd
dat_mean=[['T0','mouse','yes',25],['T0','mouse','no',24],['T0','cat','no',23],['T1','mouse','yes',15],['T1','mouse','no',14],['T1','cat','no',13],['T2','mouse','yes',5],['T2','mouse','no',4],['T2','cat','no',3]]
df_mean= pd.DataFrame(dat_mean,columns = ["Time", "Design", "Treatment", "Mean for Cmpd1"])
dat_std=[['T0','mouse','yes',5],['T0','mouse','no',5],['T0','cat','no',5],['T1','mouse','yes',2.5],['T1','mouse','no',2.5],['T1','cat','no',2.5],['T2','mouse','yes',1],['T2','mouse','no',1],['T2','cat','no',1]]
df_std= pd.DataFrame(dat_std,columns = ["Time", "Design", "Treatment", "Mean for Cmpd1"])
data = df_mean.to_dict(orient='list')*
dates = df_mean['Time'].tolist()
source = ColumnDataSource(data=data)
p = figure(x_range=['T0', 'T1', 'T2'], y_range=(0, 30), plot_height=250, title="Bokeh plot",
toolbar_location=None, tools="")
p.x_range.range_padding = 0.1
p.xgrid.grid_line_color = None
p.legend.location = "top_left"
p.legend.orientation = "horizontal"
show(p)