Я пытаюсь создать гистограмму, используя R
plotly
для этих данных:
df <- data.frame(name = c(paste0("B.",1:3),paste0("C.",1:3)),
x = 0:5, y = 0.2, width = 0.75,
group = c(rep("B",3),rep("C",3)),
class = c(rep("P",2),rep("X",2),rep("P",2)),
stringsAsFactors=F)
Как видите, каждый name
в df
связан с group
и class
.
Мне бы хотелось, чтобы цвета заливки для class
P
подчинялись их group
, а для class
X
были прозрачными (или серыми), но имели бы границы обоих class
X
и P
подчиняться их group
.
Вот как я пока создаю сюжет, только раскраска по group
:
df$group <- factor(df$group)
library(plotly)
library(dplyr)
plotly::plot_ly(df,showlegend=T) %>%
plotly::add_bars(x=~x,y=~y,width=~width,color=~group) %>%
plotly::layout(legend=list(x=1,y=0)) %>%
plotly::layout(xaxis=list(title=NA,zeroline=F,tickangle=45,range=x.range,tickvals=df$x,ticktext=df$name),yaxis=list(title=NA,zeroline=F,showgrid=F,range=c(0,1),showticklabels=F))
Что дает:
Есть идеи?