在R Plot_ly中添加框图重要性指示符线和星号 [英] add boxplot significance indicator lines and asterisks in R plot_ly

查看:16
本文介绍了在R Plot_ly中添加框图重要性指示符线和星号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

将水平显著条(和星形)添加到绘图图形的R PLOT_ly命令是什么?"How to draw the boxplot with significant level?""Put stars on ggplot barplots and boxplots - to indicate the level of significance (p-value)"的答案为ggploy提供了很好的代码。

首先,确定重要性:

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

这里是该图的R代码示例。如何添加线条和星号?

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

推荐答案

提供所需输出的骇人听闻的解决方案

  • 将括号添加为单独的行迹线
  • 将重要性标记作为标签添加到隐藏条形图的顶部
  • 通过layout
  • 隐藏帮助器类别值

使用注释的问题是没有办法将星号放在正确的位置,三个框图意味着三个绝对的x值。新的x值通过条形图添加。

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

下图显示了用于正确绘制图形的所有隐藏轨迹:

这篇关于在R Plot_ly中添加框图重要性指示符线和星号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆