2013-04-17 3 views
0

В приведенном ниже коде показан график, в котором размер точки пропорционален количеству случаев, которые имеют одинаковые значения x и y. Как я могу увеличить пространство между точками, чтобы они не пересекали или не пересекали друг друга? В приведенном ниже примере используются поддельные данные, реальные данные охватывают около 200 точек, которые сильно пересекаются, что затрудняет восприятие каждой отдельной точки.Увеличение расстояния между точками на графике R

Спасибо,

София

x = seq(1:10) 
    y = c(4,3.8,3.8,3.2,3.1,2.5,2,1.5,1.2,1.3) 
    size = c(7,20,2,70,100,70,5,80,110,2) 
    pdf("example.pdf") 
    par(mar=c(5,5,1.8,1.8)) 
    plot(y ~ x, cex = sqrt(size), pch = 1, 
     ylab="y", 
     xlab = "x",ylim=c(0,4), 
     cex.lab =1.8,cex.axis =1.3, 
     lwd = .5,type= "p", col="grey60") 
    dev.off() 
+0

Использование, например. 'cex = 0.5 * sqrt (size)'? – eddi

+0

Вы не можете увеличить расстояние, не перемещая центры пятен, так как другие ответы отметили, вам нужно настроить масштаб размеров точек или диапазона графика. Моя любимая альтернатива этому - назначить цвет с частичной прозрачностью, например, 'col = # 00000020', чтобы перекрывающиеся точки становились темнее и темнее, что давало указание на локальную плотность. –

ответ

0

Я хотел бы использовать ggplot2 для этого:

df = data.frame(x = seq(1:10), 
       y = c(4,3.8,3.8,3.2,3.1,2.5,2,1.5,1.2,1.3), 
       size = c(7,20,2,70,100,70,5,80,110,2)) 

library(ggplot2) 
ggplot(df, aes(x = x, y = y, size = size)) + geom_point() 

enter image description here

ggplot2 масштабирует область карты в соответствии со значениями в size, он напрямую не использует size как cex. Поэтому проблемы перекрытия нет, и нет необходимости вручную настраивать cex.

+0

Спасибо всем! ggplot2 был полезен, но частичная прозрачность также является хорошей альтернативой. Best, Sofia – user2291581

+0

Привет, Пол, я решил пойти на ggplot2. Но у меня есть последний вопрос: есть ли способ сделать размер точек сопоставимым по разным графикам, которые имеют разные значения 'size'? В противном случае график, имеющий только 1 в 'size', будет иметь гораздо большие точки, чем 1 в графике, где' size' принимает и другие значения. Еще раз спасибо, София – user2291581

+0

Думаю, было бы лучше, если бы вы задали новый вопрос об этом. Это облегчает для других пользователей также возможность получать любые ответы. –