histogram2d пример для боке
Удивительно, но никто не потрудился сделать пример в галерее боке для построения 2D гистограммы.
histogram2d
из numpy
дает сырье, но было бы неплохо иметь пример, как это происходит для matplotlib
Любая идея для короткого пути, чтобы сделать один?
Следуя предложенному ответу, позвольте мне добавить случай, в котором hexbin не выполняет свою работу, потому что exagons не подходят для этой работы. Также проверьте результат matplotlib.
Конечно, я не говорю, что боке не может этого сделать, но это не так просто. Было бы достаточно изменить гексбиновый график в квадратный, но quad(left, right, top, bottom, **kwargs)
кажется, не делать этого, ни hexbin
иметь возможность изменять формы "плитки".
1 ответ
Вы можете сделать что-то близкое с помощью сравнительно небольшого количества строк кода (по сравнению с этим примером из галереи matplotib). Обратите внимание, что у bokeh есть несколько примеров шестнадцатеричного биннинга в галерее здесь и здесь. Адаптируя их и пример, приведенный в кратких документах, вы можете получить следующее:
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))