2D гистограмма с Python - PullRequest
       20

2D гистограмма с Python

3 голосов
/ 26 июля 2011

Я пытаюсь построить 2D гистограмму в Python, используя этот код

from math import *
import pylab as p
import matplotlib.pyplot as plt
import numpy as np

x=part.points[:,0]
y=part.points[:,1]
z=part.points[:,2]

H, xedges, yedges = np.histogram2d(x, y, bins=(128,128))
H.shape, xedges.shape, yedges.shape

extent = [yedges[0], yedges[-1], xedges[-1], xedges[0]]

plt.imshow(H, extent=extent, interpolation='nearest')

plt.colorbar()
plt.xlabel("x")
plt.ylabel("y")
plt.show()

Все отлично работает: у меня есть цветная шкала, которая представляет количество в каждой ячейке. Дело в том, что я хотел бы иметь журнал подсчета, но функция histrogram2d не имеет никакой возможности для этого.

Ответы [ 2 ]

5 голосов
/ 26 июля 2011

Я думаю, что вы могли бы просто сделать

H_log = np.log(H)
…
plt.imshow(H_log,…)

(при условии, что у вас нет нулевого счета).

Если вам нужна вместо этого гистограмма 3D, вы можете адаптировать пример , приведенный в документации Matplotlib.

В общем, я от всей души рекомендую вам проверить очень полезную галерею Matplotlib , когда вы ищете некоторые конкретные графические возможности.

3 голосов
/ 11 мая 2013

В этом ответе есть решение для двумерных и трехмерных гистограмм рассеяния и пузырьков.

points, sub = hist2d_scatter( radius, density, bins=4 )

points, sub = hist3d_scatter( temperature, density, radius, bins=4 )

Где sub - это экземпляр matplotlib "Subplot" (3D илинет) и points содержит точки, используемые для точечной диаграммы.enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...