histogram2d пример для боке

Удивительно, но никто не потрудился сделать пример в галерее боке для построения 2D гистограммы.

histogram2d из numpy дает сырье, но было бы неплохо иметь пример, как это происходит для matplotlib

Любая идея для короткого пути, чтобы сделать один?

Следуя предложенному ответу, позвольте мне добавить случай, в котором hexbin не выполняет свою работу, потому что exagons не подходят для этой работы. Также проверьте результат matplotlib.

Конечно, я не говорю, что боке не может этого сделать, но это не так просто. Было бы достаточно изменить гексбиновый график в квадратный, но quad(left, right, top, bottom, **kwargs) кажется, не делать этого, ни hexbin иметь возможность изменять формы "плитки".

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))

2D гистограмма с боке

Другие вопросы по тегам