简体   繁体   English

使用geom_dotplot绘制点图颜色

[英]dot plot color using geom_dotplot

How can I make just the dot plot points be colored using the data$color vector? 如何使用data $ color向量使点绘图点着色? There should be one red point on the plot 情节上应该有一个红点

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)

I get an error saying: object 'color' not found 我收到一条错误消息:找不到对象“颜色”

ggplot doesn't seem to be looking in data to find the color variable, so you need to tell it where color is located. ggplot似乎并没有在数据中查找颜色变量,因此您需要告诉它颜色位于何处。 This worked for me: 这对我有用:

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

I think a better property to change is fill , but you change it back to color 我认为要更改的更好属性是填充 ,但是您可以将其更改回颜色

Edited the ggplot call to incorporate a suggestion about how to make the code more elegant. 编辑了ggplot调用,以纳入有关如何使代码更优雅的建议。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM