Есть ли простой способ построения 2D-данных со средствами интенсивности пикселей вдоль осей x и y по бокам изображения? аналогично seaborn's jointplot
(doc), но с использованием массива 2D numpy в качестве входа? Или, может быть, массив numpy может быть легко преобразован в форму, которая может быть нанесена на график?средние выступы вдоль осей массива изображения в python
Уродливое обходное решение будет следующим, где я преобразую изображение в координаты x и y. Тогда я могу использовать jointplot
, но вывод изображения довольно уродлив.
img=#some 2d image data
xx=np.zeros(img.sum())
yy=np.zeros(img.sum())
i=0
for x in range(img.shape[0]):
for y in range(img.shape[1]):
for c in range(img[x,y]):
xx[i]=x
yy[i]=y
i+=1
import seaborn as sns
sns.jointplot(yy,xx)
Пока не ясно, что вы ожидаете от гистограмма интенсивности пикселя вдоль оси x или y. Можете ли вы рассказать об этом? – kazemakase
Я нашел довольно хорошее решение здесь: http://stackoverflow.com/questions/20525983/matplotlib-imshow-a-2d-array-with-plots-of-its-marginal-densities – jlarsch
не совсем гладкий, как морской, но хорошее начало – jlarsch