2016-10-11 2 views
1

У меня есть разреженная матрица X, форма (6000, 300). Я хотел бы что-то вроде диаграммы рассеяния, которая имеет точку, где X (i, j)! = 0 и пустое пространство в противном случае. Я не знаю, сколько ненулевых записей есть в каждой строке X. X [0] имеет 15 ненулевых записей, X [1] имеет 3 и т. Д. Максимальное количество ненулевых записей в строке равно 16.Python: Участок разреженной матрицы

Попытки

:

  • plt.imshow(X) приводит к высокому, тощему графу из-за формой X. Используя plt.imshow(X, aspect='auto) будет растянуть график по горизонтали, но точка растянуться, чтобы стать эллипсами, а сюжет становится трудно читать ,
  • ax.spy испытывает такую ​​же проблему.
  • bokeh кажется многообещающим, но действительно налагает мое ядро ​​jupyter.

Бонус:

  • ненулевые элементы матрицы X положительные действительные числа. Если бы был какой-то способ отразить их величину, это было бы здорово (например, интенсивность цвета, прозрачность или цветная полоса).
  • Каждые 500 строк X принадлежат к одному классу. Это 12 классов * 500 наблюдений (строк) для каждого класса = 6000 строк. Например. X [: 500] относятся к классу A, X [500: 1000] относятся к классу B и т. Д. Было бы неплохо, если бы цветные коды отображались по классам. На данный момент я соглашусь на ручное включение горизонтальных линий каждые 500 строк для разграничения между классами.

ответ

1

Вы можете использовать nonzero() найти ненулевые элементы и использовать scatter() сюжетные точки:

import pylab as pl 
import numpy as np 

a = np.random.rand(6000, 300) 
a[a < 0.9999] = 0 
r, c = np.nonzero(a) 
pl.scatter(r, c, c=a[r, c]) 
0

Мне кажется, что карта является лучшим кандидатом для этого типа сюжета. imshow() вернет цветную матрицу с цветной легендой.

У меня не возникает проблема с эллипсами ур, разве это не цветной знак для каждой точки данных?

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

0

plt.matshow также оказался приемлемым решение. Я мог бы также построить карту тепла с цветными панелями и все такое.

Смежные вопросы