在R图中添加方框图重要性指示线和星号

在R图中添加方框图重要性指示线和星号,r,plotly,boxplot,R,Plotly,Boxplot,向plotly图形添加水平重要性条(和星星)的R plot_y命令是什么?这些答案为ggplot提供了很好的代码 首先,确定重要性: library(lsmeans) lsmeans(lm(data = iris, Sepal.Width ~ Species), pairwise ~ Species) $contrasts contrast estimate SE df t.ratio p.value setosa -

向plotly图形添加水平重要性条(和星星)的R plot_y命令是什么?这些答案为ggplot提供了很好的代码

首先,确定重要性:

library(lsmeans)
lsmeans(lm(data = iris, Sepal.Width ~ Species), pairwise ~ Species)
     $contrasts
     contrast               estimate         SE  df t.ratio p.value
     setosa - versicolor       0.658 0.06793755 147   9.685  <.0001
     setosa - virginica        0.454 0.06793755 147   6.683  <.0001
     versicolor - virginica   -0.204 0.06793755 147  -3.003  0.0088
库(lsmeans)
lsmeans(lm(数据=鸢尾,萼片宽度~种),成对~种)
美元对比度
对比度估计SE df t.比值p.值

setosa-versicolor 0.658 0.06793755 147 9.685提供所需输出的可怕的黑胶溶液

  • 添加括号作为单独的线轨迹
  • 将显著性标记添加为隐藏条形图顶部的标签
  • 通过
    layout
使用注释的问题是无法将星号放在正确的位置,三个方框图表示三个分类x值。通过条形图添加新的x值

library(plotly)

p如果要通过注释进行切换,则切换将不再起作用(当跟踪消失时,显著性指示器将保持不变)。任何一种可能性都将是非常粗糙的一次性解决方案,添加一个用作指示器的跟踪,添加注释等@MaximilianPeters,谢谢您的评论。听起来您建议不要使用R Plotly来添加这些重要指标。我会将它们添加到Inkscape或Illustrator中并另存为SVG。如果您禁用跟踪切换,并且您对一个黑客解决方案很满意,我可以添加一个。我不知道怎么做,但在我看来,如果您成功,您将拥有一个非常混乱的图形。我可能建议使用带有lsmeans的cld()函数将分组字母合并到表格输出中。感谢您的聪明和详细的解释!我试着做一个函数,但放弃了,因为这个方法太特殊了。我想知道在Plotly中添加此功能有多难?(你的答案与代码有格式问题。)@KayleSawyer:我希望Plotly正在解决这个问题。感谢您发现格式错误,一行新行的缺失可以让您大吃一惊;)没有比这更直接的方法了,这是可耻的
library(plotly)
p <- plot_ly()
p <- add_boxplot(p, data = iris, x = ~Species, y = ~Sepal.Width, 
                 color = ~Species, boxpoints = "all", jitter = 0.3, pointpos = 0)
# p <- add_paths(p, data = iris, ???)
# p <- add_line(p, data = iris, ???)
p
library(plotly)
p <- plot_ly()
p <- add_bars(p, 
              x = c('setosa', 'setosa0', 'versicolor', 'versicolor0', 'virginica'),
              y = c(3.5, 4.6, 2.5, 4.1, 3),
              opacity=1,
              showlegend = F,
              marker=list(line = list(color='rgba(0,0,0,0'),
                          color = 'rgba(0,0,0,0'),
              text = c('', '**', '', '*', ''),
              textposition = 'outside',
              legendgroup = "1"
)
p <- add_lines(p, 
               x = c('setosa', 'setosa', 'versicolor', 'versicolor'),
               y = c(4.5, 4.6, 4.6, 4.5),
               showlegend = F,
               line = list(color = 'black'),
               legendgroup = "1",
               hoverinfo = 'none'
)

p <- add_lines(p, 
               x = c('versicolor', 'versicolor', 'virginica', 'virginica'),
               y = c(4.0, 4.1, 4.1, 4.0),
               showlegend = F,
               line = list(color = 'black'),
               legendgroup = "1",
               hoverinfo = 'none'
)


p <- add_boxplot(p, data = iris, x = ~Species, y = ~Sepal.Width, 
                 color = ~Species, boxpoints = "all", jitter = 0.3, pointpos = 0,
                 legendgroup="1")


p <- layout(p,
            xaxis = list(tickmode = 'array',
                         tickvals = c('setosa', 'sf', 'versicolor', 'vet', 'virginica'),
                         ticktext = c('setosa', '', 'versicolor', '', 'virginica')),
            yaxis = list(range = c(0, 5))
            )
p