【问题标题】:How to remove/change the label in a plotly geom_vline in R?如何在 R 中的 plotly geom_vline 中删除/更改标签?
【发布时间】:2016-03-20 20:59:20
【问题描述】:

使用this example from plotly 我正在尝试绘制两条垂直线来表示平均值和中位数。

可重现的代码

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(binwidth=.5, position="dodge")

ggplotly()

问题

我想抑制显示在红色文本“平均值”旁边的 y 值 -2.2。但是,我希望像下面的屏幕截图中那样显示文本“平均”。 IE。我只想压制我打过黑叉的标签。 同样的问题也适用于中线。

我的非工作尝试

#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(binwidth=.5, position="dodge")

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(下面的屏幕截图):

【问题讨论】:

    标签: r plot ggplot2 plotly


    【解决方案1】:

    解决方案

    #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", yaxt="n") +
        geom_histogram(binwidth=.5, position="dodge")
    
    #create plotly object
    p <- plotly_build(gg)
    
    #append additional options to plot object
    p$data[[1]]$hoverinfo <- "name+x" #hover options for 'average'
    p$data[[2]]$hoverinfo <- "name+x" #hover options for 'median'
    
    #display plot
    plotly_build(p)
    

    结果(截图)

    解释器

    对象pplotly 选项的列表,但不包括所有 选项。看来R API 到plotly 隐式 使用所有默认值。因此,如果您想要一些不同的东西,您需要在选项名称(例如hoverinfo)中附加自定义设置(例如"name+x")。

    Plotly reference material

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 2014-05-23
      相关资源
      最近更新 更多