R: горизонтальная гистограмма с накоплением с использованием Plotly () - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь построить горизонтальную гистограмму с накоплением, используя plotly. Но я получаю горизонтальную гистограмму, даже если layout(barmode = 'stack') указан с помощью orientation = "h"

Это данные, которые мне нужно построить как диаграмму с накоплением

    Var1 Freq percentage
1 Tool 1  104         35
2 Tool 2   81         28
3 Tool 3   36         12
4 Tool 4   30         10
5 Tool 5   23          8
6 Tool 6   10          3
7 Tool 7    8          3
8 Tool 8    2          1

Это код используется для построения диаграммы с использованием plotly

plot_ly(tooldf, x = tooldf$percentage,
        y = tooldf$Var1, 
        type = 'bar', orientation = "h",
        name = tooldf$Var1,
        text = paste(tooldf$percentage,"%"),
        textposition = 'top',
        hoverinfo = 'text',
        hovertext = paste('Tool: ', tooldf$Var1,
                          '<br> % of Usage: ', paste(tooldf$percentage,"%"))) %>%
  layout(barmode = 'stack')

Может ли кто-нибудь помочь мне построить горизонтальную диаграмму с накоплением в R?

1 Ответ

0 голосов
/ 18 июня 2020

Вам не хватает другой переменной. Прямо сейчас вы проходите только по осям x и y, как вы хотите их сложить? Я представил новую фиктивную переменную под названием Type ниже.

a <- "Var1 Freq percentage
Tool1  104         35
Tool2   81         28
Tool3   36         12
Tool4   30         10
Tool5   23          8
Tool6   10          3
Tool7    8          3
Tool8    2          1"

tooldf <- read.table(text = a, header = TRUE) 

tooldf <- tooldf %>% mutate(Type = Freq > mean(Freq))

library(plotly)

tooldf %>%
  plot_ly(
    x = ~percentage
    ,y = ~Type
    ,color = ~Var1
    ,name = ~Var1
    ,type = "bar"
    ,orientation = "h"
  ) %>%
  layout(
    barmode = "stack"
  )

enter image description here

...