从图中使用这个例子我试图绘制两条垂直线来表示平均值和中位数.
可重复的代码
library(plotly) # data df1 <- data.frame(cond = factor( rep(c("A","B"), each=200) ), rating = c(rnorm(200),rnorm(200, mean=.8))) df2 <- data.frame(x=c(.5,1),cond=factor(c("A","B"))) # graph ggplot(data=df1, aes(x=rating, fill=cond)) + geom_vline(aes(xintercept=mean(rating, na.rm=T)) , color="red", linetype="dashed", size=1, name="average") + geom_vline(aes(xintercept=median(rating, na.rm=T)) , color="blue", linetype="dashed", size=1, name="median") + geom_histogram(bindodge") ggplotly()
问题
我想要抑制红色文本'average'旁边显示的y值-2.2.但是,我希望文本"平均"显示在下面的屏幕截图中.即我只想压制我已经穿过黑色十字架的标签.同样的问题适用于中线.
我的非工作尝试
#plot gg <- ggplot(data=df1, aes(x=rating, fill=cond)) + geom_vline(aes(xintercept=mean(rating, na.rm=T)) , color="red", linetype="dashed", size=1, name="average")+ geom_vline(aes(xintercept=median(rating, na.rm=T)) , color="blue", linetype="dashed", size=1, name="median") + geom_histogram(bindodge") p <- plotly_build(gg) # p$data[[1]]$y[1:2] <- " " # another attempt, but the line doesn't display at all p$data[[1]]$y <- NULL # delete the y-values assigned to the average line plotly_build(p)
此尝试仍显示0
(下面的屏幕截图):