Построение кольцевой диаграммы с помощью Plotly

Я хочу построить две круговые диаграммы на одном и том же участке. Ниже вы можете увидеть мои данные:

library(plotly)
library(dplyr)
library(grid)

    Share<- structure(list(Y = c(2018, 2018, 2019, 2019), Categorie = c("Before","After", "Before","After"), Share = c(1.0,99., 3, 97)), row.names = c(NA,-4L), class = c("tbl_df", "tbl", "data.frame")) 

Я пытаюсь использовать эти строки кода, но не могу найти решения.

 fig1 <- plot_ly(Share, labels = ~Categorie , values = ~Share, type = 'pie')

 fig2 <- plot_ly(Share, labels = ~Categorie , values = ~Share, type = 'pie')
          
          
PLOT<-subplot(fig1,fig2,nrows=2,margin = 0.05)
      

Так может ли кто-нибудь помочь мне, как решить эту проблему и построить график, как на картинке ниже, но с кольцевыми диаграммами:

введите описание изображения здесь


person silent_hunter    schedule 21.01.2021    source источник


Ответы (1)


Попробуйте скорректировать следующий пример для своих данных: Размещение кольцевых диаграмм бок о бок, используя plotly в R

suppressPackageStartupMessages(invisible(
    lapply(c("plotly", "dplyr"), require, character.only = TRUE)))

Share <- structure(list(Y = c(2018, 2018, 2019, 2019), 
                        Categorie = c("Before","After", "Before","After"), 
                        Share = c(1.0,99., 3, 97)), 
                   row.names = c(NA,-4L), class = c("tbl_df", "tbl", "data.frame")) 

p <- plot_ly() %>%
    add_pie(data=Share, labels = ~Categorie , values = ~Share, hole = 0.6,
            name = "fig1", domain = list(x = c(0, 0.4), y = c(0.4, 1))) %>%
    add_pie(data=Share, labels = ~Categorie , values = ~Share, hole = 0.6,
            name = "fig2", domain = list(x = c(0.6, 1), y = c(0.4, 1)))  %>%
    layout(title = "Donut sub-plots", showlegend = TRUE,
           font=list(family="sans serif", color="#000"),
           plot_bgcolor="#f0f0f0",
           legend = list(orientation = 'h',font=list(size=28)),
           xaxis = list(title="", showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
           yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
p

Создано 21 января 2021 года пакетом REPEX (v0.3.0)

person user12728748    schedule 21.01.2021