0
我在一個散點圖中繪製了x和y變量,圖例中提供了基於單個樣本id變量的每個點的形狀和顏色。我想疊加第二個數據框中的點,但是當我嘗試添加第二個數據框中的點時,出現一個錯誤,指出它找不到用於指定點的顏色和形狀的變量原始數據幀。我使用此代碼:在ggplot中使用兩個數據幀並且遇到圖例問題
p=ggplot(HebWater, aes(x = PCSrCa.24, y = SrIso, group = Location,
color = Location, shape = Location)) +
geom_point(size=6) +
scale_shape_manual(values = 1:17) +
theme(panel.grid.major=element_line(colour="white"),
panel.grid.minor=element_blank(),panel.background=element_rect(colour="black",fill="white"))
p
p1=p+geom_errorbar(aes(ymin=SrIso-SDSrIso*3, ymax=SrIso+SDSrIso*3))+
geom_errorbarh(aes(xmin=PCSrCa.24-SDSrCa*3, xmax=PCSrCa.24+SDSrCa*3))
p1
p2=p1+geom_point(data=HebOto, aes(SrCa,SrIso))
p2
一切工作正常,直到我嘗試運行圖形P2上的代碼,我已經成功地在同一個圖形繪製兩個數據幀,但沒能得到傳說中能正確顯示不管我怎麼努力改變形狀,並使用此代碼顏色參數:
ggplot(HebWater, aes(PCSrCa.24, SrIso))+
geom_errorbar(aes(ymin=SrIso-SDSrIso*3, ymax=SrIso+SDSrIso*3))+
scale_shape_manual(values=1:17)+
geom_errorbarh(aes(xmin=PCSrCa.24-SDSrCa*3, xmax=PCSrCa.24+SDSrCa*3))+
geom_point(data=HebOto, aes(SrCa,SrIso))+
geom_point(data=HebWater, show_guide=TRUE, shape=c(1:17), colour=c(1:17), size=6)+
theme(panel.grid.major=element_line(colour="white"),
panel.grid.minor=element_blank(),
panel.background=element_rect(colour="black",fill="white"))
我的數據幀都以這種方式分別組織:
> head(HebWater)
Location SrIso PCSrCa.24 SDSrIso SDSrCa PCSrCa.28
1 Gib (baseflow) 0.70966 0.2911440 0.000643719 0.0308056 0.3396680
2 Fire (baseflow) 0.71006 0.1119312 0.000643719 0.0308056 0.1305864
3 Mad R (runoff) 0.71052 0.2043264 0.000643719 0.0308056 0.2383808
您應該嘗試1.提供其他人可以使用的數據(您僅提供3行數據集中的一行),以及2.在代碼最小的情況下減少代碼,但仍會產生相同的錯誤。這裏所有的「主題」與你的錯誤無關,應該刪除。 – Arthur
'HebOto'中是否有'Location'列?如果不是,嘗試將'p'的定義更改爲:'p = ggplot(HebWater,aes(x = PCSrCa.24,y = SrIso))+ geom_point(aes(color = Location,shape = Location),size = 6 )+ ...' – jlhoward