首页 > 解决方案 > 带有 BOKEH 的延迟频率直方图

问题描述

我需要为每家航空公司绘制延迟频率的直方图,并使用选项卡将它们显示在同一个图上。

我实例化了 3 个图形和 3 个 ColumnDataSource 对象。我没有错误,但图表没有出现,图是空的。我不知道错误来自哪里。

有人可以帮助我吗?谢谢

    `delay_united = df[df['carrier'] == 'UA']
    delay_united = delay_united.dropna()

    delay_jetblue = df[df['carrier'] == 'B6']
    delay_jetblue = delay_jetblue.dropna()

    delay_express = df[df['carrier'] == 'AA']
    delay_express = delay_express.dropna()

    p_united = figure(plot_width = 600, plot_height = 400, y_range = (0, 0.03), 
    x_axis_label='Retard en minutes', y_axis_label= 'Fréquence')

    p_express = figure(plot_width = 600, plot_height = 400, y_range = (0, 0.03), 
    x_axis_label='Retard en minutes', y_axis_label= 'Fréquence')

    p_jetblue = figure(plot_width = 600, plot_height = 400, y_range = (0, 0.03), 
    x_axis_label='Retard en minutes', y_axis_label= 'Fréquence')`


    hist_united, edges_united = np.histogram(delay_united['arr_delay'], bins = 50, density = True)
    hist_express, edges_express = np.histogram(delay_express['arr_delay'], bins = 50, density = True)
    hist_jetblue, edges_jetblue = np.histogram(delay_jetblue['arr_delay'], bins = 50, density = True)

    source_united = ColumnDataSource(delay_united)
    source_express = ColumnDataSource(delay_express)
    source_jetblue = ColumnDataSource(delay_jetblue)


    p_united.vbar(x = 'hist', top='edges', color='red', width = 3, source = source_united)
    tab1 = Panel(child=p_united, title="United Air Lines Inc.")

    p_express.vbar(x = 'hist', top='edges', color='blue', width = 3, source = source_express)
    tab2 = Panel(child=p_express, title="ExpressJet Airlines Inc.")

    p_jetblue.vbar(x = 'hist', top='edges', color='yellow', width = 3, source = source_jetblue)
    tab3 = Panel(child=p_jetblue, title="JetBlue Airways")

    # To show in notebook
    output_notebook()

    hover = HoverTool(
            tooltips=[
                ("Retard", "@arr_delay"),
                ("Frequence", "@ordonnee")])

    p_united.add_tools(hover)
    p_express.add_tools(hover)
    p_jetblue.add_tools(hover)


    s = Span(dimension = 'height', location = 0, line_color = 'purple')

    p_united.add_layout(s)
    p_united.add_layout(s)
    p_jetblue.add_layout(s)

    tabs = Tabs(tabs=[tab2,tab1,tab3 ])

    show(tabs)`

标签: python

解决方案


推荐阅读