Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python Bokeh中的循环动态创建不同列值的条形图_Python_Pandas_Bar Chart_Bokeh - Fatal编程技术网

使用Python Bokeh中的循环动态创建不同列值的条形图

使用Python Bokeh中的循环动态创建不同列值的条形图,python,pandas,bar-chart,bokeh,Python,Pandas,Bar Chart,Bokeh,我有一个列名为“Type”的数据框,它获取分类值,如a、B、C等。此列动态获取值,不同/唯一的值可以随时更改 例如数据集图像: 我希望运行以下代码(使用Bokeh可视化库)为“Type”列中的每个不同值动态创建条形图 下面是我目前通过手动切片“Type”中每个值的数据来运行的 假设“df”是只包含“Type”=A行的数据帧的名称 非常感谢您的帮助所以您已经有了生成条形图的代码,但需要帮助按类型拆分数据框,对吗?您好@BurningKarl,我需要在某种程度上自动化上面的代码,以便为所有“类型”

我有一个列名为“Type”的数据框,它获取分类值,如a、B、C等。此列动态获取值,不同/唯一的值可以随时更改

例如数据集图像

我希望运行以下代码(使用Bokeh可视化库)为“Type”列中的每个不同值动态创建条形图

下面是我目前通过手动切片“Type”中每个值的数据来运行的

假设“df”是只包含“Type”=A行的数据帧的名称


非常感谢您的帮助

所以您已经有了生成条形图的代码,但需要帮助按类型拆分数据框,对吗?您好@BurningKarl,我需要在某种程度上自动化上面的代码,以便为所有“类型”创建条形图,而无需手动识别所有“类型”的可用性,这随不同时间段的数据提取而变化。拆分数据不是问题,但是如何在没有任何手动干预的情况下将数据传递到上面的条形图代码中。您是否正在尝试使用多个组获取一个绘图?或者是整个单独的绘图,每组一个?@BhavukSingh您是否尝试过
source\u df['Type'].unique()
?这将提供类型列中所有唯一类型的numpy数组。然后你可以循环使用这些值,并使用
source\u df.loc[source\u df['Type']==current\u Type]
来获取这种类型的行。嗨@bigreddot,我想创建整个单独的绘图,但我愿意探索一个带有多个组的绘图。
source_df  = ColumnDataSource(df)

TOOLTIPS = [ ("Month : ", "@Month"),
             (" Aggregated Metric1 : ", "@Metric1{ 0.0 a}") ]

hover = HoverTool()
hover.tooltips =  TOOLTIPS

pYOY = figure(x_range=df['Month'], y_range=(0, 100000), plot_height=300,plot_width=1000, 
           toolbar_location=None, tools = "box_select, box_zoom , wheel_zoom,reset")

pYOY.vbar(x=dodge('Month', 0, range=pYOY.x_range), top='Metric1', width=0.2, source=source_df,
       color="#c9d9d3", legend=("# Rev"))

pYOY.tools.append(hover)
pYOY.yaxis.axis_label = "Rev"
pYOY.xaxis.axis_label = "Month"