【发布时间】:2018-09-04 20:01:55
【问题描述】:
我了解如何在plotly 中自定义散点图的悬停文本,但箱形图不接受“文本”属性。 Warning message: 'box' objects don't have these attributes: 'text'。我有超过 300 个 x 轴变量,并且在两组(A 或 B)中有编号的样本(1-50),我想在同一个箱线图中一起绘制,然后我想区分样本数和将光标移动到异常值上时通过悬停文本进行分组。我想要我的自定义数据标签而不是自动四分位数标签。 plotly boxplots 有可能吗?
library(plotly)
library(magrittr)
plot_ly(melt.s.data,
x = ~variable,
y = ~value,
type = 'box',
text = ~paste("Sample number: ", Sample_number,
'<br>Group:', Group)) %>%
layout(title = "Individual distributions at each x")
这是一些仅显示 5 x 变量的示例数据(但当外推到我的 300 时,代码应该可以工作)...
#sample data
set.seed(456)
#Group A
sample.data_a <- data.frame(Class = "red", Group = "A",
Sample_number = seq(1,50,by=1),
x1= rnorm(50,mean=0, sd=.5),
x2= rnorm(50,mean=0.5, sd=1.5),
x3= rnorm(50,mean=5, sd=.1),
x4= rnorm(50,mean=0, sd=3.5),
x5= rnorm(50,mean=-6, sd=.005))
#Group B
sample.data_b <- data.frame(Class = "red", Group = "B",
Sample_number = seq(1,50,by=1),
x1= rnorm(50,mean=0, sd=5.5),
x2= rnorm(50,mean=0.5, sd=7.5),
x3= rnorm(50,mean=5, sd=.01),
x4= rnorm(50,mean=0, sd=.5),
x5= rnorm(50,mean=-6, sd=2.05))
#row Bind groups
sample.data <- rbind(sample.data_a, sample.data_b)
#melting data to have a more graphable format
library(reshape2)
melt.s.data<-melt(sample.data, id.vars=c("Class", "Group","Sample_number"))
以下是类似的问题:
【问题讨论】:
-
请提供一个可重现的例子。
-
@MLavoie 我为可重现的示例添加了数据。
-
andemexoax,您接受了我的回答,谢谢。请参阅my blog 以获得另一个更好的解决方案。 (更好,因为它确保工具提示永远不会超出情节)。