【问题标题】:R plotly bar plot with additional line doesn't work带有附加线的R plotly条形图不起作用
【发布时间】:2021-11-10 17:53:12
【问题描述】:

拜托,我有以下条形图,我试图在条形图的顶部显示平均线,但不知何故,我下面的代码不起作用,只要我将它添加到 fig . 我的第一步是创建条形图:

vect_x = c("A",   "AA" , "AAA", "A"  , "AA",  "AAA")
vect_y <- c(137.2, 306.2,  76.2 , 73.2, 220.9 , 99.3)
vect_group <- c("US","US","US","Europe","Europe","Europe")
fig <- plot_ly(x = ~vect_x, y = ~vect_y, color = ~vect_group)

这非常有效。 此时,我想绘制一条显示平均值的水平线。 我阅读了plotly bar and line chart 和Adding a horizontal line to a plotly bar graph,但建议的解决方案似乎都不起作用。 添加以下代码后,绘图仅显示一行:

avg_value <- mean(vect_y, na.rm = T)
fig %>% add_trace(,
                             x = ~vect_x,
                             y = ~rep(avg_value, length(vect_y)),
                             type='scatter',
                             mode='lines+markers',
                             line = list(color = 'black')
                          )

有人知道我做错了什么吗? 非常感谢

【问题讨论】:

    标签: r plotly r-plotly


    【解决方案1】:

    实现所需结果的一种方法是通过add_trace 或add_bars 将条添加为单独的层:

    library(plotly)
    
    vect_x <- c("A", "AA", "AAA", "A", "AA", "AAA")
    vect_y <- c(137.2, 306.2, 76.2, 73.2, 220.9, 99.3)
    vect_group <- c("US", "US", "US", "Europe", "Europe", "Europe")
    
    fig <- plot_ly() %>% 
      add_trace(x = ~vect_x, y = ~vect_y, color = ~vect_group, type = 'bar')
    
    avg_value <- mean(vect_y, na.rm = T)
    fig %>% add_trace(
      x = ~vect_x,
      y = ~rep(avg_value, length(vect_y)),
      type = "scatter",
      mode = "lines+markers",
      line = list(color = "black"),
      marker = list(color = "black"),
      name = "mean"
    )
    

    【讨论】:

      猜你喜欢
      • 2018-01-06
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多