Существует ли эквивалентный контур Matplotlib для боке? - PullRequest
0 голосов
/ 11 января 2019

Мне нужно выполнить что-то в боке, что я успешно делаю в matplotlib.

Я строю контурные графики, используя matplotlib вместе с цветовой шкалой сбоку, используя функцию contourf. Я не использую функцию сетки сетки, потому что у меня уже есть данные X, Y и Z в массивах форм (78, 60001) каждый. Так вот что работает:

array1[0].shape
(78, 60001)
array1[1].shape
(78, 60001)
array1[2].shape
(78, 60001)
CS = plt.contourf(array1[0], array1[1], array1[2], 25, cmap = plt.cm.jet)

Что дает следующие результаты:

3d-fft

Как мне сделать то же самое в боке? Большинство примеров в интернете и руководства используют сетку.

===

Обновление № 1: Пример: https://bokeh.pydata.org/en/latest/docs/gallery/image.html

Я попробовал приведенный выше код боке следующим образом:

p.image(array1[2], array1[0], array1[1], dw=10, dh=10, palette="Spectral11")

Что дает следующую ошибку:

 RuntimeError: Columns need to be 1D (x is not)

===

Обновление № 2:

p.image(array1[2].ravel(), array1[0].ravel(), array1[1].ravel(), dw=10, dh=None, palette="Spectral11")

Над строкой кода создается файл HTML, но график не отображается.

1 Ответ

0 голосов
/ 12 января 2019

RuntimeError: Столбцы должны быть 1D (х нет)

Причина этого в том, что вы пытаетесь передать координаты для каждого пикселя изображения, но это не то, чего ожидает Боке. Для каждых данных 2D-изображения (либо массива RGBA, либо скалярных данных, которые должны быть отображены в цвете на клиенте), Bokeh ожидает получить только одно значение для каждого из: x, y, dw и dh. Координаты x и y - это координаты нижнего левого угла изображения. Dw и dh - ширина и высота изображения в координатах пространства данных.

Можно передать несколько изображений за один вызов image_rgba или image. В этом случае x, y, dw и dh будут иметь одно значение для каждого изображения. Т.е. x будет 1d массивом чисел (по одному на каждое изображение).

...