Ggplot2

如何在ggplot2中的散點圖區域周圍繪製整齊的多邊形[關閉]

  • February 14, 2012

**如何在散點圖上的一組點周圍添加一個整潔的多邊形?**我正在使用 ggplot2 但對geom_polygon.

數據集在那邊,作為一個製表符分隔的文本文件。下圖顯示了許多國家對健康和失業態度的兩種衡量標準:

帶有密度 2d 的散點圖

我想從不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獲取對象。

解決方案:

感謝WayneAndy 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

引用自:https://stats.stackexchange.com/questions/22805

comments powered by Disqus