为啥 plot_ly 饼图总是将 R 中的第 5 个值文本从白色变为黑色?

Posted

技术标签:

【中文标题】为啥 plot_ly 饼图总是将 R 中的第 5 个值文本从白色变为黑色?【英文标题】:Why does plot_ly pie chart always turn 5th value text from white to black in R?为什么 plot_ly 饼图总是将 R 中的第 5 个值文本从白色变为黑色? 【发布时间】:2021-10-09 03:58:39 【问题描述】:

我正在使用 R 中的 plotly 包制作饼图,每当我有 5 种选择进行可视化时,它总是将第 5 种更改为棕色/黑色,尽管我将颜色覆盖为白色。如果它与 NA 的值有关,我该如何解决?我有标记为 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

【讨论】:

谢谢!快速跟进:NA 的悬停文本仍然是棕色。我尝试设置 hovertext = list(color = "#FFFFFF"),但没有任何变化。有什么想法吗? 如果有人需要,修复悬停文本颜色的方法是在布局函数中添加另一个参数: layout(hoverlabel = list(font = list(color = "white")))

以上是关于为啥 plot_ly 饼图总是将 R 中的第 5 个值文本从白色变为黑色?的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中的 plot_ly (plotly) 中获取 ylim

R中的动画热图

R中的plot_ly函数

r plot_ly scatter 中的自定义颜色范围

R中子图plot_ly中每个图附近的图例

为啥我的元组中的第一个值总是未知的?