Для гибкого подхода к длине переменной вашего класса вы можете просто использовать:
colors = gray.colors(length(data$class))
График 1:
Or if you'd like other grey tones, you can specify your own using:
colors = list("rgb(80, 80, 80)", "rgb(120, 120, 120)", "rgb(160, 160, 160)", "rgb(160, 160, 160)")
Plot 2:
введите описание изображения здесь
Полный код:
library(data.table)
library(dplyr)
library(plotly)
# Data
data <- data.table(
class = c("class 1", "class 2", "class 3", "class 4"),
count = c(2403, 4949, 18, 570))
# Pie
data %>% plot_ly() %>%
add_trace(
type = 'pie',
labels = ~class,
values = ~count,
marker = list(
#colors = list("rgb(120, 120, 120)", "rgb(160, 160, 160)", "rgb(180, 180, 180)", "rgb(220, 220, 220)"),
colors = gray.colors(length(data$class)),
line = list(color = "rgb(20, 20, 20)", width = 1))
) %>%
layout(
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))