如何在使用十六进制字符串的情况下更改plotly for r中饼图的分片颜色?

3

这是我现在的饼图:

library(plotly)
library(RColorBrewer)


P <- data.frame (labels = c("A", "B", "C", "D", "E"),
             values = c(5, 8, 3, 4, 9))

plot_ly(P, labels = labels, values = values, type = "pie",
    marker = list(colors=c("lightskyblue", "deepblue", "dodgerblue", "midnightblue", "powderblue")),
    textinfo="value",
    textposition="outside") 

我想使用十六进制字符串更改它的颜色,这样我就可以使用RColorBrewer的调色板。非常感谢!

2个回答

5

只需将十六进制值放入字符串中,以井号(#)为前缀。十六进制的前两位代表红色,接下来两位代表绿色,然后是两位蓝色(#RRGGBB)。可选地,您可以添加额外的两个数字来表示透明度(#RRGGBBAA)。

例如:

plot_ly(P, labels = labels, values = values, type = "pie",
    marker = list(colors=c("#556677", "#AA3344", "#772200", 
                           "#11AA22", "#AA231B88")), # the last color has alpha value set.
    textinfo="value",
    textposition="outside") 

3

探索 RColorBrewer

   library(RColorBrewer)

查看RColorBrewer包内的函数列表:

   ls("package:RColorBrewer")
   #  [1] "brewer.pal"         "brewer.pal.info"    "display.brewer.all"
   #  [4] "display.brewer.pal"

显示所有配色方案
   display.brewer.all()

获得蓝色十六进制字符串。
   brewer.pal(9,"Blues")
   # [1] "#F7FBFF" "#DEEBF7" "#C6DBEF" "#9ECAE1" "#6BAED6" "#4292C6" "#2171B5"
   # [8] "#08519C" "#08306B"

   brewer.pal(10,"Blues")
   # [1] "#F7FBFF" "#DEEBF7" "#C6DBEF" "#9ECAE1" "#6BAED6" "#4292C6" "#2171B5"
   # [8] "#08519C" "#08306B"
   # Warning message:
   # In brewer.pal(10, "Blues") :
   # n too large, allowed maximum for palette Blues is 9
   # Returning the palette you asked for with that many colors

查看蓝色调色板

  display.brewer.pal(9,"Blues")

颜色数量是有限制的,但如果您想扩展连续或分散的颜色组,可以使用colorRampPalatte命令,例如:

  colorRampPalette(brewer.pal(9,”Blues”))(100)

以下是 divergentqualitativesequential 配色方案的示例。可以使用上述命令 display.brewer.all() 查看这些配色方案的名称,如 SpectralSet2Reds。您也可以从列表中选择其他配色方案。

 display.brewer.pal(4,"Spectral")
 brewer.pal(4,"Spectral")
 # [1] "#D7191C" "#FDAE61" "#ABDDA4" "#2B83BA"

 display.brewer.pal(4,"Set2")
 brewer.pal(4,"Set2")
 # [1] "#66C2A5" "#FC8D62" "#8DA0CB" "#E78AC3"

 display.brewer.pal(4,"Reds")
 brewer.pal(4,"Reds")
 # [1] "#FEE5D9" "#FCAE91" "#FB6A4A" "#CB181D"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接