r - 使用 ggplot 在多个 geom_point 组周围绘制轮廓

标签 r ggplot2 polygon

我目前有下面包含的代码来绘制这个:
enter image description here

我想要做的是获得每个组的大纲,以遵循每个组中的所有要点 - 而不是像目前那样跳过其中的一些。此外,我希望每个轮廓都具有半透明填充。感谢您的帮助。

library(ggplot2)
library(reshape)
library(car)

G1 <- 1:10
G2 <- 11:20
G3 <- 21:30
G4 <- 31:35
G5 <- 36:41

sdata <- read.csv("http://dl.dropbox.com/u/58164604/sdata.csv", stringsAsFactors = FALSE)
pdata<-melt(sdata, id.vars="Var")

VarArea <- data.frame(unique(pdata$Var))
VarFinalMin <-c()
for (g in 1:max(VarArea))
{
VarNum<-pdata[which(pdata$Var==g),1:c(ncol(pdata))]
VarN <- g
VarMin <- min(VarNum$value)
VarMinN <- cbind(VarN, VarMin)
VarFinalMin <- rbind(VarFinalMin,VarMinN) 
}
VFinalMin <- data.frame(VarFinalMin)
colnames(VFinalMin)<-c("Variable", "Value")

VarFinalMax <-c()
for (g in 1:max(VarArea))
{
VarNum<-pdata[which(pdata$Var==g),1:c(ncol(pdata))]
VarN <- g
VarMax <- max(VarNum$value)
VarMaxN <- cbind(VarN, VarMax)
VarFinalMax <- rbind(VarFinalMax,VarMaxN)
}
VFinalMax <- data.frame(VarFinalMax)
colnames(VFinalMax)<-c("Variable", "Value")

VFinal<-rbind(VFinalMin, VFinalMax)
VFinal$Group <- recode(VFinal$Variable, "G1 = 'A'; G2 = 'B'; G3 = 'C'; G4 = 'D'; G5 = 'E'")

ggplot(VFinal, aes(Variable, Value, colour = Group)) + geom_point()
find_hull <- function(VFinal) VFinal[chull(VFinal$Variable, VFinal$Value), ]
hulls <- ddply(VFinal, "Group", find_hull)
ggplot(VFinal, aes(Variable, Value, colour = Group)) + geom_point() + geom_polygon(data = hulls, fill = NA)

最佳答案

如果您将形状的底部和顶部分别按升序和降序重新排序,则可以使用 geom_polygon在您原来的 data.frame并跳过所有凸包的东西:

VLarge <- VFinal[which(VFinal$Value > 25000),]
VLarge <- VLarge[order(-VLarge$Variable, VLarge$Group),]
VSmall <- VFinal[which(VFinal$Value <= 25000),]
VSmall <- VSmall[order(VSmall$Variable, VSmall$Group),]
VFinal <- rbind(VSmall, VLarge)
ggplot(VFinal, aes(Variable, Value, colour = Group)) + geom_point() + 
    geom_polygon(aes(fill = Group), alpha = 0.3)

enter image description here

关于r - 使用 ggplot 在多个 geom_point 组周围绘制轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419493/

相关文章:

r - 如何用字符串元素扩展.grid(一半!)

Python rpy2 和 quantmod 示例

r - ggplot 顺序中的行

r - 组内的ggplot scale_fill_manual

java - 如何绘制多边形,然后按比例调整其大小并将其移动到显示区域的中心?

r - 在 ggplot 中,我不想标记值为零的 geom_col 条,而只标记具有值的条(它们都是正数)

r - R 中嵌套的 ifelse 语句中缺少值

r - ggplot2 geom_bar 的条形 z 索引

c++ - 使用 Boost.Polygon 对曼哈顿多边形进行切片

c++ - 如何在cgal中加载COFF网格?