2017-06-19 139 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