首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用geom_dotplot绘制网点颜色

用geom_dotplot绘制网点颜色
EN

Stack Overflow用户
提问于 2019-01-04 18:50:21
回答 1查看 1.2K关注 0票数 1

如何使用数据$颜色向量对点图点进行着色?情节上应该有一个红点。

代码语言:javascript
复制
t =c(c(10,4,5,6,7,8,15,2),c(2,5,5,14,16,8,15,17))
g =c(  rep("A",8),rep("B",8))

data = data.frame(group = g ,t = t)
data$label = ""
data$label[10]= "g"
data$color =""
data$color[10]= "red"

library(ggplot2)
library(ggrepel)

myfun<- function(x) {
  r <- quantile(x, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))
  names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
  r
}


 ggplot(data, aes(x=g, y=t,label = label 
)) + theme_bw()+
  stat_summary(fun.data = myfun, geom="boxplot")  +
   geom_dotplot(binaxis='y', stackdir='center', dotsize=.5, color = color)

我发现了一个错误:找不到对象‘颜色’

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-04 18:59:49

ggplot似乎没有在数据中查找颜色变量,所以您需要告诉它颜色在哪里。这对我起了作用:

代码语言:javascript
复制
t =c(c(10,4,5,6,7,8,15,2),c(2,5,5,14,16,8,15,17))
g =c(  rep("A",8),rep("B",8))

data = data.frame(group = g ,t = t)
data$label = ""
data$label[10]= "g"
data$color <- 'black' # added this to color the other points
data$color[10]= "red"

library(ggplot2)
library(ggrepel)

myfun<- function(x) {
  r <- quantile(x, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))
  names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
  r
}

ggplot(data, aes(x=g, y=t,label = label)) + theme_bw()+
stat_summary(fun.data = myfun, geom="boxplot")  +
geom_dotplot(aes(fill = color), binaxis='y', stackdir='center', dotsize=.5) + 
scale_fill_identity()

我认为要更改的一个更好的属性是fill,但您可以将其更改为颜色。

编辑了ggplot调用,以包含关于如何使代码更优雅的建议。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54044503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档