2013-01-11 60 views
7

HI我使用ggmap和gg_point函數來顯示河口中的測量數據。當使用ggmap和geom_point時geom_text不工作

,我使用的代碼如下:

library(ggmap) 
al1 <- get_map(location = c(lon = -87.525, lat = 30.35), zoom = 12, maptype = 'terrain') 

lon<- c(-87.604474,-87.55) 
lat<- c(30.362563,30.35) 
label <- c("A","B") 
df<-data.frame(lon,lat,label) 

p <- ggmap(al1)+geom_point(data=df,aes(x=lon,y=lat,shape=label,label=label),size=3) 
p <- p + xlab("Longitude")+ylab("Latitude") 
p <- p +geom_text(aes(label=label, size=3,vjust=0)) 
p <- p + labs(title="Monitoring stations ") 
p 

ggsave("plot.pdf") 

在這裏,當我使用geom_text然後我得到以下錯誤,「美學必須是長度的一個或相同的長度的dataProblems:標籤」。

我想將標籤放在圖的點旁邊。我想放置點和標籤,並有一定的間距,以便閱讀更容易。

我看了這篇文章「ggplot legend issue w/ geom_point and geom_text」,並試圖修復我的代碼,你可以看到上面但我不知道爲什麼我有這個問題。

還有另一篇文章How can I persuade ggplot2 geom_text to label a specified date in a time series plot?其中談到類似的問題。我得到不同的結果,因爲我也使用ggmap?

請幫我解決這個問題。非常感謝。

Jdbaba

回答

10

你的問題是,你有沒有在geom_text正確指定的美學:

geom_text(data = df, aes(x = lon, y = lat, label = label), 
      size = 3, vjust = 0, hjust = -0.5) 

你沒有告訴geom_text從數據幀df使用的變量。如果你不這樣做,所有的美學都是從主要召喚中繼承下來的。最後,在將美學設置爲單個值時,您不要在aes()內部這樣做,而是在外部。

我用hjust設置猴子讓標籤可見。

+0

謝謝喬蘭,我只是想通了,並打算張貼。非常感謝您的參與。 –

+0

@Jdbaba沒問題。 (我錯誤地解決了'形狀',順便說一句) – joran

+0

我剛剛學習R和ggplot,並且對你們提供的支持類型感到非常興奮。感謝@Joran和@Josh O'Brien –

相關問題