我正在尝试使用geom_polygon在ggplot中绘制一些三角形,但是,即使没有出现任何错误,该图也完全是空的。
我按照文档中给出的代码获取了相同类型的数据,但是并没有真正的帮助(此处的第一个示例为https://ggplot2.tidyverse.org/reference/geom_polygon.html)。我确定我在数据框格式设置中缺少了一些关键步骤,但是我不明白我哪里写错了。
data = read.table(text = "
start end av y1 y2 y3
719000 721000 720000 1 1 2
1199000 1201000 1200000 1 1 2
3039000 3041000 3040000 1 1 2
3679000 3681000 3680000 1 1 2
4119000 4121000 4120000 1 1 2
4999000 5001000 5000000 1 1 2", sep = " ", stringsAsFactors = F, header = T)
ids <- factor(paste(1:nrow(data), 1:nrow(data), sep = "."))
positions <- data.frame(
id = rep(ids, times = nrow(data)/2),
x = c(data$start, data$end, data$av),
y = c(data$y1, data$y2, data$y3)
)
values <- data.frame(
id = ids,
value = 1:length(ids)
)
datapoly <- merge(values, positions, by = c("id"))
ggplot(datapoly, aes(x = x, y = y)) + geom_polygon(aes(fill = value, group = id))
为什么我什么也没得到?你有什么建议吗?
谢谢你, 瓦伦蒂娜
答案 0 :(得分:1)
也许您需要关闭多边形:
datapoly <- merge(values, positions, by = c("id"))
datapoly2<-rbind(datapoly,datapoly[1,])
datapoly2$id<-as.character(datapoly2$id)
datapoly2[19,1]<-"6.7"
library(ggplot2)
ggplot( datapoly2, aes(x = x, y = y)) + geom_polygon()