Ggplot2
如何在ggplot2中的散點圖區域周圍繪製整齊的多邊形[關閉]
**如何在散點圖上的一組點周圍添加一個整潔的多邊形?**我正在使用 ggplot2 但對
geom_polygon
.數據集在那邊,作為一個製表符分隔的文本文件。下圖顯示了許多國家對健康和失業態度的兩種衡量標準:
我想從不
geom_density2d
那麼花哨但經驗上更正確的切換geom_polygon
。未排序數據的結果沒有幫助:如何繪製“整潔”的多邊形,它們表現為圍繞最小-最大 yx 值的輪廓路徑?我嘗試對數據進行排序無濟於事。
代碼:
print(fig2 <- ggplot(d, aes(man, eff, colour=issue, fill=issue)) + geom_point() + geom_density2d(alpha=.5) + labs(x = "Efficiency", y = "Mandate"))
使用此 CSV 文件
d
獲取對象。解決方案:
感謝Wayne、Andy W等人的指點!數據、代碼和圖表已發佈到 GitHub。結果如下所示:
通過一些谷歌搜索,我發現了 Gota Morota 的網站,她的網站上已經有一個這樣做的例子。下面是擴展到您的數據的示例。
library(ggplot2) work <- "E:\\Forum_Post_Stuff\\convex_hull_ggplot2" setwd(work) #note you have some missing data mydata <- read.table(file = "emD71JT5.txt",header = TRUE, fill = TRUE) nomissing <- na.omit(mydata) #chull function does not work with missing data #getting the convex hull of each unique point set df <- nomissing find_hull <- function(df) df[chull(df$eff, df$man), ] hulls <- ddply(df, "issue", find_hull) plot <- ggplot(data = nomissing, aes(x = eff, y = man, colour=issue, fill = issue)) + geom_point() + geom_polygon(data = hulls, alpha = 0.5) + labs(x = "Efficiency", y = "Mandate") plot