2017-07-24 44 views
0

我的問題與this thread有點相關,但我想實際上每個符號的黑色邊框,因爲我有實例符號重疊,我認爲有邊界會有所幫助。然而,我有顏色形狀基於geom_point中美學的一個變量,所以使用shape = 21和color = NA的解決方案並不完全解決我的問題:我想填充符號的顏色基於變量和基於另一個變量的形狀。 可以這樣做嗎?或者我應該以不同的方式來解決這個問題?當繪製點根據地圖上的變量着色和成形時,保留黑色邊框(geom_point)

df <- data.frame("lon"= c(-95.350278, -95.257593, -104.987625, -104.998113), 
      "lat"= c(29.752778, 29.733726, 39.751184, 39.704005), 
      "type"= c("aa", "bb", "aa", "bb"), 
      "mean"= c(5.369, 3.476, 7.857, 2.356)) 

states<-map_data("state") 

mymap<- ggplot(data = states) + 
geom_polygon(aes(x = long, y = lat, group = group), fill=NA, color = "black") + 
coord_fixed(1.3) + 
guides(fill=FALSE)+ 
geom_point(data=df, aes(x=lon, y=lat, color=mean, shape=type),size=5, alpha=0.8)+ 
scale_colour_gradient(low = "royalblue4", high = "red")+ 
theme_bw()+ 
theme(legend.position = "right", 
axis.text = element_blank(),axis.line = element_blank(), 
axis.ticks = element_blank(),panel.border = element_blank(), 
panel.grid = element_blank(),axis.title = element_blank(), 
plot.title = element_text(hjust=0.5, size=14, face="bold")) 

print(mymap) 

我的地圖:

screen

感謝大家的時間和建議。

回答

0

您需要使用「填充」爲形狀着色,然後將「顏色」設置爲黑色以獲得周圍的邊界。

mymap <- ggplot(data = states) + 
    geom_polygon(aes(x = long, y = lat, group = group), fill = NA, color = "black") + 
    coord_fixed(1.3) + 
    geom_point(data = df, aes(x = lon, y = lat, fill = mean, shape = type), color = "black", size=5, stroke = 2) + 
    scale_fill_gradient(low = "royalblue4", high = "red") + 
    scale_shape_manual(values = c(24,21)) + 
    theme_bw() + 
    theme(legend.position = "right", 
     axis.text = element_blank(), axis.line = element_blank(), 
     axis.ticks = element_blank(), panel.border = element_blank(), 
     panel.grid = element_blank(), axis.title = element_blank(), 
     plot.title = element_text(hjust = 0.5, size = 14, face = "bold")) 

enter image description here

+0

感謝您的及時解決! – silver