2016-03-14 75 views
1

我希望我的散點圖顯示兩個因素:由點大小灰階ggplot2:修改scatterplot {ggplot2}中兩個因子的圖例元素?

a1<-c(seq(1,10,1)) 
a2<-c(seq(11,20,1)) 
a3<-c(rep(c(1,2),each = 5)) 
a4<-c(rep(c(5,10,15,20,25),2)) 

df<-data.frame(a1,a2,a3,a4) 

t1<-theme(  
    plot.background = element_blank(), 
    panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(), 
    panel.border = element_blank(), 
    panel.background = element_blank(), 
    axis.line = element_line(size=.4)) 

ggplot(df, aes(x= a1, y= a2)) + 
    geom_point(aes(alpha=factor(a3), size = factor(a4))) + t1 + labs(x = "x label", y = "y label") + 
    theme(legend.background = element_rect()) 

到目前爲止,或多或少不錯的。

我的問題是:

  • 如何去除背景在我的傳說? theme(legend.background = element_rect())由於某種原因不起作用...
  • 如何修改我的傳奇頭文件?我想通過這個例子:http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/ 這應該是這樣的:

    scale_shape_discrete(name ="modified A4", breaks=c("1", "2"), labels = c("one","two"))但我不知道如何使它工作?

我確定我完全誤解了散點圖中兩個變量的顯示,但是我找不到如何糾正它的方法?

謝謝!

enter image description here

+1

您不改變形狀,從而不需要'scale_shape' ... BU牛逼你就改變α和大小SC愛爾蘭人 – user20650

+0

你的意思是「你的傳奇背景」?也許鑰匙周圍的灰色框?那麼你需要'legend.key = element_blank()' – inscaven

+0

謝謝你的建議!我已經根據它添加了我的答案...... – maycca

回答

2

基於@ user20650和@inscaven的建議和更多的谷歌搜索我希望能更好地瞭解ggplot是如何組織和如何生產我的情節:

# dummy data 
a1<-c(seq(1,10,1)) 
a2<-c(seq(11,20,1)) 
a3<-c(rep(c(1,2),each = 5)) 
a4<-c(rep(c(5,10,15,20,25),2)) 

# create data frame 
df<-data.frame(a1,a2,a3,a4) 

# set nice theme 
t1<-theme(  
    plot.background = element_blank(), 
    panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(), 
    panel.border = element_blank(), 
    panel.background = element_blank(), 
    axis.line = element_line(size=.4)) 

# create scatter plot 
ggplot(df, aes(x= a1, y= a2)) +        # create basic plot 
    geom_point(aes(size = factor(a4), colour = factor(a3))) + # colour has to be inside of aes !! (ASSIGNED = MAPPED) 
    scale_colour_grey(name = "Set second\nline in title") + # change title of 1st legend, change colours 
    scale_size_discrete(name = "Name by size") +    # change title of 2nd legend, size of point has been already assigned 
    theme(legend.key = element_blank()) +      # delete grey boxes around the legend 
    labs(x = "x label", y = "y label") +      # set labels on x and y axes 
    t1              # add nice theme 

導致:

enter image description here