小编La *_*tte的帖子

用R中的渐变比例填充多边形

我想创建一个量规以可视化一个变量对另一个变量有或多或少的影响。

我建立了一个绘制仪表的函数,并用3种不同的颜色填充它。

gg.gauge <- function(pos,breaks=c(0,33,66,100),determinent) {

  require(ggplot2)

  get.poly <- function(a,b,r1=0.5,r2=1.0) {
    th.start <- pi*(1-a/100)
    th.end   <- pi*(1-b/100)
    th       <- seq(th.start,th.end,length=100)
    x        <- c(r1*cos(th),rev(r2*cos(th)))
    y        <- c(r1*sin(th),rev(r2*sin(th)))
    return(data.frame(x,y))
  }

  ggplot()+ 
    geom_polygon(data=get.poly(breaks[1],breaks[2]),aes(x,y), fill = "red")+
    geom_polygon(data=get.poly(breaks[2],breaks[3]),aes(x,y), fill = "gold")+
    geom_polygon(data=get.poly(breaks[3],breaks[4]),aes(x,y), fill = "green")+
    geom_polygon(data=get.poly(pos-1,pos+1,0.2),aes(x,y))+
    geom_text(data=as.data.frame(breaks), size=5, fontface="bold", vjust=0,
              aes(x=0.8*cos(pi*(1-    breaks/100)),y=-0.1),label=c('Less','','',"More"))+
        annotate("text",x=0,y=0,label=determinent,vjust=0,size=8,fontface="bold")+
    coord_fixed()+
    theme_bw()+
    theme(axis.text=element_blank(),
          axis.title=element_blank(),
          axis.ticks=element_blank(),
          panel.grid=element_blank(),
          panel.border=element_blank(),
          legend.position = "none") 
}
Run Code Online (Sandbox Code Playgroud)

输出:

在此处输入图片说明

我想用令人愉悦的颜色填充,这样它就可以从红色(低)到绿色(高)淡出效果,而不会出现明显的切痕。

我尝试使用scale_fill_grdientn没有正面结果。

谢谢

gradient r ggplot2

3
推荐指数
1
解决办法
313
查看次数

标签 统计

ggplot2 ×1

gradient ×1

r ×1