2014-10-07 5 views
-2

У меня есть симметричная матрица nxn со значениями, равными -1, 0 или 1. Я построил матрицу с использованием изображений() и levelplot(), давая разные цвета для -1, и 1 (0 не означает никаких значений, следовательно, нет цвета или белого).Построение матрицы с разными стилями точек

Однако я не мог изменить стиль точки (используя pch) для любой из двух функций, или с помощью тепловой карты и других параметров.

Я пытаюсь представить -1 и 1 с разными цветами и разными стилями точек (круг, и сказать, треугольник). Что-то вроде показано здесь: http://www.ploscompbiol.org/article/fetchObject.action?uri=info:doi/10.1371/journal.pcbi.1002004.g007&representation=PNG_M

Благодарим за помощь.

+1

Пожалуйста, включите некоторый пример кода, предпочтительно с [воспроизводимый пример] (HTTP : //stackoverflow.com/q/5963269/1222578) ваших данных. – Marius

+0

Данные описаны в [rnso] (http://stackoverflow.com/users/3522130/rnso), за исключением того, что данные находятся в форме симметричной матрицы. И затем я использовал 'levelplot()' из пакета 'решетка', с разными цветами для -1, 1 и белого для нулей. – sredemption

ответ

2

Try:

xx = matrix(sample(-1:1, 16, replace=T), nrow=4) 
xx 
    [,1] [,2] [,3] [,4] 
[1,] 0 1 0 1 
[2,] 1 -1 1 1 
[3,] 1 1 -1 0 
[4,] 0 1 1 -1 

dd = data.frame(xx) 
dd$id = rownames(dd) 
ggplot(melt(dd))+geom_point(aes(x=variable, y=id, color=value, shape=value)) 

enter image description here

Чтобы опустить пункты с 0:

mm = melt(dd) 
mm$value[mm$value==0] = NA 
ggplot(mm)+geom_point(aes(x=variable, y=id, color=factor(value), shape=factor(value)),size=5) 

enter image description here

+0

Благодарим за отзыв. Однако ваш пример не сохраняет порядок исходных данных (матрицы). Мне удалось вертикально перевернуть исходную матрицу (используя «apply (xx, 2, rev)»), а затем использовать пример кода. – sredemption

+0

Я сосредоточился «для представления -1 и 1 с разными цветами и разными стилями точек», что было вашей главной проблемой. – rnso

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