用阴影区域绘制三角形

时间:2018-12-18 22:18:20

标签: r

我想绘制一个(阴影)三角形,该三角形的子区域以另一种颜色阴影,如下图所示

desiredOutput

到目前为止,我只能绘制三角形:

library(ggplot2)
library(data.table)

dt.triangle <- data.table(group = c(1,1,1), polygon.x = c(1,2,1.75), polygon.y = c(1,1,2))
p <- ggplot()
p <- p + geom_polygon(
  data = dt.triangle
  ,aes(
     x=polygon.x
    ,y=polygon.y
    ,group=group
  )
)
p

我的问题主要是添加白色阴影区域(并且还具有类似形状的三角形,比我的代码更宽)。

1 个答案:

答案 0 :(得分:1)

受@desc给出的链接的启发,到目前为止,这是我的解决方案

library(ggplot2)

col_col <- c("#000000",'#000000')
col_fill <- c("#5cb85c","#f9f9f9")
d=data.frame(x=c(1,2,2, 1.5,1.5,2,2), y=c(1,1,2, 1.375,1.25,1.25,1.75), t=c('a', 'a', 'a',  'b', 'b', 'b', 'b'), r=c('x','z','y', 4,5,6,7))
p <- ggplot(data = d, aes(x = x, y = y, col = factor(t), fill = factor(t))) + geom_polygon(data = d, alpha = .75) + # geom_point() +
       scale_color_manual(values = col_col) + scale_fill_manual(values = col_fill) 
p + geom_point(data = d[1:3,]) + geom_text(data = d[1:3,], aes(x=x, y=y, label=r), hjust=0, vjust=1, size=4) +
    theme(axis.title.x = element_blank(),
          axis.text.x  = element_blank(),
          axis.ticks.x = element_blank(),
          axis.title.y = element_blank(),
          axis.text.y  = element_blank(),
          axis.ticks.y = element_blank(),
          legend.position = 'none')

solution

我仍在弄清楚如何正确绘制不正确的矩形,同时将第二个多边形的点保持在边缘上。进一步的技巧仍然值得赞赏。