我有一些問題創建一個地圖與ggplot2
以上我使用geom_point
項目點。在以pdf或其他支持導出時,點的大小會有所不同(因爲她是絕對的而不是軸相對的)。我已經搜索瞭如何改變這個問題,並且發現了很多答案,說這是有意的,因爲如果不是這種情況,那麼每次軸的變化就會變成橢圓。然而,我明白,因爲我在地圖上工作,所以我使用coord_fixed
來修復輸出並避免我的地圖的變形,所以如果我能夠相對於地塊大小修正點的大小,這不會是一個問題。ggplot geom_point不同的大小與窗口大小
有沒有一些解決方案來做到這一點?我讀過一些有趣的建議,使用geom_polygon
來人爲地創建省略號。但我有兩個問題,方法:
首先,我不知道如何實現我的數據,我現在知道我點的中心的地方,但我怎麼可能再後來說如何定義所有的中心,然後定義一個實心圓圈多邊形?
第二我已經用
scale_size_continuous
繪製較小或較大的點相對於其他變量。我怎麼能用geom_polygon
來實現呢?
法西特:我會很樂意要麼重寫不可能確定一個相對單位爲點大小,或與一些幫助,使的可能性,我明白,我怎麼可以創造同樣的事情與功能geom_polygon
。
我嘗試加入一個可重複使用的小例子。這僅僅是一個例子,我的數據的問題是我有很多封閉的小值(主要是1,就像可重現的例子中的小點),所以它們看起來非常好,但是當輸出時它可以變得更大並通過重疊繪圖造成很多問題,這就是爲什麼我需要修正這個比例的原因。
Link for the map informations和second link for map informations
dat <- data.frame(postcode=c(3012, 2000, 1669, 4054, 6558), n=c(1, 20, 40, 60, 80))
ch <- read.csv("location/PLZO_CSV_LV03/PLZO_CSV_LV03.csv", sep=";")#first link, to attribute a geographical location for each postcode
ch <- ch%>%
distinct(PLZ, .keep_all=TRUE)%>%
group_by(PLZ, N, E)%>%
summarise
ch <- ch%>%
filter(PLZ %in% dat$postcode)
ch <- ch%>%
arrange(desc(as.numeric(PLZ)))
dat <- dat%>%
arrange(desc(as.numeric(postcode)))
datmap <- bind_cols(dat, ch)
ch2 <- readOGR("location/PLZO_SHP_LV03/PLZO_PLZ.shp")#second link, to make the shape of the country
ch2 <- fortify(ch2)
a <- ggplot()+
geom_polygon(dat=ch2, aes(x=long, y=lat, group=group), colour="grey75", fill="grey75")+
geom_jitter(data=datmap, aes(x=E, y=N, group=FALSE, size=n), color=c("red"))+ #here I put geom_jitter, but geom_point is fine too
scale_size_continuous(range=c(0.7, 5))+
coord_fixed()
print(a)
在此先感謝您的幫助!
非常感謝!我已經使用theme_void了,因爲我想舉一個最簡單的例子,並且感謝州的想法,實際上我用另一個更加複雜的圖形來繪製湖泊和山脈的瑞士形狀,但只是使用以此爲例。但是我的工作稍後可能需要一些州的小區,所以謝謝,我會看看!謝謝你的阿爾法提示。我使用R Sweave,所以更好的選擇是保存繪圖,然後使用'\ includegraphics'將其添加到LaTeX環境中,如果我理解的很好的話?它似乎工作如此,所以非常感謝你! – GaryDe
ggsave是理想的,如果只是想創建一個獨立的文件與您的情節。如果您打算使用Sweave或knitr將圖形嵌入到文檔中,則還可以使用主題選項嘗試調整點的大小,例如, 'theme_void(base_size = 10)' – PeerEZ
謝謝,它工作正常:) – GaryDe