散景如何具有叠加直方图

时间:2019-01-14 14:09:18

标签: python histogram bokeh

我在bokeh中制作了一个直方图,现在我想在同一张图中绘制两个直方图(重叠直方图)。我该怎么办?

enter image description here

这是我的一个直方图代码:

from bokeh.plotting import figure
from bokeh.io import show, output_notebook
import numpy as np
import pandas as pd



    def generate_time_differences(n=1000, skew_p=0.1,mean=0,std=1,skew_mean=1,skew_std=6):
        normal_dist = np.random.normal(loc=mean, scale=std, size=int(n * (1-skew_p)))
        skewed_dist = np.random.normal(loc=skew_mean, scale=skew_std, size=int(n * skew_p))

        return np.append(normal_dist, skewed_dist)


    def generate_plot_data(data, density=True, bins=50):
        hist, edges = np.histogram(data, density=density, bins=bins)

        return pd.DataFrame({'top': hist,
                            'left': edges[:-1],
                            'right': edges[1:]})


    data = generate_time_differences(n=1000, skew_p=0.1,mean=1000,std=100,skew_mean=2000,skew_std=500)

    plot_data = generate_plot_data(data, density=True, bins=50)


    # Create the blank plot
    p = figure(plot_height = 300, plot_width = 600,
               title = 'Test Histogram',
              x_axis_label = 'Milliseconds',
               y_axis_label = 'Frequency')

    # Add a quad glyph
    p.quad(bottom=0, top=plot_data['top'],
           left=plot_data['left'], right=plot_data['right'],
           fill_color='blue', line_color='blue', fill_alpha=0.5,line_alpha=0.5 )


    # Show the plot
    show(p)

1 个答案:

答案 0 :(得分:0)

散景仅为plots the glyphs you ask for, in the order you ask for。如果要添加第二个直方图,请使用新数据对quad进行更多调用。