令人惊讶的是,没有人愿意在bokeh画廊中为2D直方图作图
histogram2d
中的 numpy
给出了原材料,但是很高兴有一个示例,因为它发生在matplotlib
有什么想法可以使人成为一个简短的方法吗?
在提出一个建议的答案之后,让我举一个案例,即六边形不适合该工作,因为对角线不适合该工作。还要检查matplotlib结果。
我当然不是说bokeh不能做到这一点,但它似乎并非直截了当。足以将六边形图更改为方形图,但是quad(left, right, top, bottom, **kwargs)
似乎没有这样做,hexbin
也没有选择更改“平铺”形状的选项。
答案 0 :(得分:1)
您可以使用相对较少的代码行来完成一些工作(与matplotib画廊中的this示例相对应)。注意bokeh具有在画廊here和here中进行十六进制合并的一些示例。改编这些内容和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))