Цветовая кодировка сюжетных полос заполняется и граничит по факторам - PullRequest
1 голос
/ 16 марта 2019

Я пытаюсь создать гистограмму, используя 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))

Что дает: enter image description here

Есть идеи?

...