ggplot2 geom_polygon没有绘制任何内容

时间:2019-05-21 14:57:33

标签: r ggplot2

我正在尝试使用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))

为什么我什么也没得到?你有什么建议吗?

谢谢你, 瓦伦蒂娜

1 个答案:

答案 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()