bokeh的histogram2d示例

时间:2018-06-21 18:59:46

标签: bokeh histogram2d

令人惊讶的是,没有人愿意在bokeh画廊中为2D直方图作图

histogram2d中的

numpy给出了原材料,但是很高兴有一个示例,因为它发生在matplotlib

有什么想法可以使人成为一个简短的方法吗?

在提出一个建议的答案之后,让我举一个案例,即六边形不适合该工作,因为对角线不适合该工作。还要检查matplotlib结果。

我当然不是说bokeh不能做到这一点,但它似乎并非直截了当。足以将六边形图更改为方形图,但是quad(left, right, top, bottom, **kwargs)似乎没有这样做,hexbin也没有选择更改“平铺”形状的选项。

hexbin enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用相对较少的代码行来完成一些工作(与matplotib画廊中的this示例相对应)。注意bokeh具有在画廊herehere中进行十六进制合并的一些示例。改编这些内容和numpy docs中提供的示例,您将获得以下信息:

import numpy as np

from bokeh.plotting import figure, show
from bokeh.layouts import row

# normal distribution center at x=0 and y=5
x = np.random.randn(100000)
y = np.random.randn(100000) + 5

H, xe, ye = np.histogram2d(x, y, bins=100)

# produce an image of the 2d histogram
p = figure(x_range=(min(xe), max(xe)), y_range=(min(ye), max(ye)), title='Image')

p.image(image=[H], x=xe[0], y=ye[0], dw=xe[-1] - xe[0], dh=ye[-1] - ye[0], palette="Spectral11")

# produce hexbin plot
p2 = figure(title="Hexbin", match_aspect=True)
p.grid.visible = False

r, bins = p2.hexbin(x, y, size=0.1, hover_color="pink", hover_alpha=0.8, palette='Spectral11')

show(row(p, p2))

2d histogram with bokeh