2017-06-19 55 views
0

我有以下代码反转大小在散点图中GGPLOT2

plot_S<-ggplot(Sdat, aes(x = Nadd, y = Sratio, size = Variance))+ 
     geom_point(aes(colour=Fert,shape = Fert))+ 
     scale_color_manual(values=c("#2b2b2b", "#838383")) + 
     theme_bw()+ 
     geom_abline(intercept=-0.0107, slope=-0.0010, colour = "#838383", size = 1.0)+ 
     geom_abline(intercept=-0.2068, slope=-0.0010, colour="#2b2b2b", size=1.0)+ 
     labs(x=expression(Delta*"N addition"),y="ln S ratio") 
plot_S 

哪产生以下:

enter image description here

但是我想通过较小的点来表示的较高方差(= 1.2)反之亦然,由较大点表示的较低方差值。 有什么建议吗? (我想保持方差这样,无需将其除以1)

回答

0

Variance前添加减号:

plot_S<-ggplot(Sdat, aes(x = Nadd, y = Sratio, size = - Variance))+ 
1

我们可以应用转换到规模的增加。 使用虚拟数据集:

library(ggplot2) 
ggplot(diamonds, aes(x = depth, y = table, color = cut, size = price)) + 
    geom_point() 

^普通scale_size

ggplot(diamonds, aes(x = depth, y = table, color = cut, size = price)) + 
    geom_point() + 
    scale_size(trans = 'reverse') 

^转化scale_size

+0

感谢,但仍似乎并不在我的情况下正常工作:您只能获得大的值(类似于你的“转换后的scale_size”)......我认为,因为我的大部分数据点的价格大约为5000(?)。有没有办法在ggplot2中有三个以上的大小? –

+0

如果您可以提供您的数据框架样本,这会更容易。编辑问题并将“dput(Sdat)'的结果放在它里面(或者如果它太大,就把它放在头上) – GGamba