Почему круговая диаграмма plot_ly всегда превращает текст 5-го значения из белого в черный в R?

#r #plotly #r-plotly

Вопрос:

Я делаю круговую диаграмму, используя пакет plotly в R, и всякий раз, когда у меня есть 5 вариантов для визуализации, он всегда меняет 5-й на коричневый/черный цвет, несмотря на то, что я переопределяю белый цвет. В случае, если это как-то связано с тем, что значение NA, как мне обойти это? У меня есть данные, помеченные как NA, поэтому мне нужно, чтобы они назывались так. Как бы то ни было, я попытался переименовать его в «NA «, но он все равно остался прежним.

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

Почему это происходит и как это исправить?

 library(plotly)
library(dplyr)

data <- tibble(employee = c("Justin", "Corey","Sibley", "Justin", "Corey","Sibley", "Lisa", "NA"),
               education = c("graudate", "student", "student", "graudate", "student", "student", "nurse", "doctor"),
               fte_max_capacity = c(1, 2, 3, 1, 2, 3, 4, 5),
               project = c("big", "medium", "small", "medium", "small", "small", "medium", "medium"),
               aug_2021 = c(1, 1, 1, 1, 1, 1, 2, 5),
               sep_2021 = c(1, 1, 1, 1, 1, 1, 2, 5),
               oct_2021 = c(1, 1, 1, 1, 1, 1, 2, 5),
               nov_2021 = c(1, 1, 1, 1, 1, 1, 2, 5))

data2 <- data %>%
  dplyr::group_by(employee) %>%
  mutate(sum = sum(rowSums(select(cur_data_all(), contains("_20"))))) %>%
  dplyr::select(employee, sum) %>%
  distinct()



my_colors <- c("#CA001B", "#1D28B0", "#D71DA4", "#00A3AD", "#FF8200", "#753BBD", "#00B5E2", "#008578", "#EB6FBD", "#FE5000", "#6CC24A", "#D9D9D6", "#AD0C27", "#950078")

fig <- plot_ly(type='pie', labels=data2$employee, values=data2$sum, 
               textinfo='label percent', marker = list(colors = my_colors),
               insidetextorientation='horizontal')
fig

t <- list(
  family = "Arial",
  size = 18,
  color = 'white')

fig %>% layout(font=t, showlegend = FALSE)
 

Ответ №1:

Установите цвет в insidetextfont

 library(plotly)

fig <- plot_ly(type='pie', labels=data2$employee, values=data2$sum, 
        textinfo='label percent', insidetextfont = list(color = '#FFFFFF'),
        marker = list(colors = my_colors),
        insidetextorientation='horizontal')

fig
 

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

Комментарии:

1. Спасибо! Быстрое продолжение: текст при наведении курсора для NA по-прежнему имеет коричневый цвет. Я попытался установить hovertext = список(цвет = «#FFFFFF»), но ничего не изменилось. Есть какие-нибудь идеи?

2. В случае, если кому-то это нужно, способ исправить цвет текста при наведении-добавить еще один аргумент в функцию макета: макет(метка при наведении = список(шрифт = список(цвет = «белый»)))