R Plotly饼图自定义颜色

时间:2016-10-12 16:48:03

标签: r colors pie-chart plotly

如果有人能帮助我,我几天都在努力解决这个问题。我有一个表数据,其中包含“结果”列,其值为“高”,“中”或“低”。我试图通过计算数据集中的高,中和低数量并尝试为每个类别指定颜色来使用图表创建饼图。以下是我的代码。我已经尝试过cols1和cols2作为我的标记和其他几种方法,但似乎没有任何效果。请记住,这是一个动态表,因此可能存在没有高或没有中等的情况。所以我不能使用列表(c(“番茄”,“ornage”,“olivedrab”)作为标记。颜色必须与结果类别相关联。

 tab <- count(data, results)

  tab <- transform(tab,
                   results_ord  = factor(
                     results ,
                     levels = c('High', 'Medium', 'Low'),
                     ordered = TRUE
                   ))
  cols1 <-
    c(
      High = "olivedrab",
      Medium = "orange",
      Low = "tomato"
    )
  cols2 <-
    c(ifelse(
      tab$results_ord == "High",
      "olivedrab",
      ifelse(
        tab$results_ord == "Medium",
        "orange",
        "tomato"
      )
    ))


  plot_ly(
    tab,
    labels = results_ord,
    values = n,
    marker = list(cols2),
    type = "pie"
  ) %>%
    layout(title = "Results")

  thanks,

Manoj Agrawal

1 个答案:

答案 0 :(得分:1)

此语法适用于4.x版本的plotly,但您可以针对较旧的版本进行相应调整。以下是如何显示手动颜色:

df <- count(mtcars, am)
plot_ly(df, values = ~n, labels = ~factor(am), colors = c('#FF7F0E', '#1F77B4'), type = 'pie')

您可以调整因子顺序以获得所需值的所需颜色。