我可以使用什么函数来模拟ggplot2的默认调色板以获得所需数量的颜色。例如,为3的输入将产生的HEX颜色的字符向量与这些颜色: 仿真ggplot2默认调色板
121
A
回答
167
它仅仅是等距隔开的色调在色轮上,从15开始:
gg_color_hue <- function(n) {
hues = seq(15, 375, length = n + 1)
hcl(h = hues, l = 65, c = 100)[1:n]
}
例如:
n = 4
cols = gg_color_hue(n)
dev.new(width = 4, height = 4)
plot(1:n, pch = 16, cex = 2, col = cols)
35
从哈德利韦翰的GGPLOT2书的106页:
默认配色方案scale_colour_hue在hcl色轮周围采用均匀分布的色调 。
有了一点逆向工程,你可以构建这样的功能:
ggplotColours <- function(n = 6, h = c(0, 360) + 15){
if ((diff(h) %% 360) < 1) h[2] <- h[2] - 360/n
hcl(h = (seq(h[1], h[2], length = n)), c = 100, l = 65)
}
在barplot演示这一点:
y <- 1:3
barplot(y, col = ggplotColours(n = 3))
+2
它比这更简单。你可以避免代数的第一行,因为虽然它不在帮助中,但是“hcl”可以循环使用大于360的值。 –
+10
甚至可以使用'scales ::: show_col(ggplotColours(n = 3))'来显示颜色和值 –
41
这些答案都很好,但我想分享另一件我在stackoverflow上发现的东西,这真的很有用,这里是t他direct link
基本上,@DidzisElferts展示了如何获取ggplot用于构建您创建的绘图的所有颜色,坐标等。非常好!
p <- ggplot(mpg,aes(x=class,fill=class)) + geom_bar()
ggplot_build(p)$data
[[1]]
fill y count x ndensity ncount density PANEL group ymin ymax xmin xmax
1 #F8766D 5 5 1 1 1 1.111111 1 1 0 5 0.55 1.45
2 #C49A00 47 47 2 1 1 1.111111 1 2 0 47 1.55 2.45
3 #53B400 41 41 3 1 1 1.111111 1 3 0 41 2.55 3.45
4 #00C094 11 11 4 1 1 1.111111 1 4 0 11 3.55 4.45
5 #00B6EB 33 33 5 1 1 1.111111 1 5 0 33 4.55 5.45
6 #A58AFF 35 35 6 1 1 1.111111 1 6 0 35 5.55 6.45
7 #FB61D7 62 62 7 1 1 1.111111 1 7 0 62 6.55 7.45
52
相关问题
- 1. 如何颠倒ggplot2的默认调色板
- 2. 仿真默认对象#inspect输出?
- 3. 更改默认的调色板中ggplot
- 4. Wicket:调色板设置默认选择
- 5. gnuplot的调色板,默认和定义
- 6. ggplot2使用scale_colour_manual访问默认颜色?
- 7. Overplotting不同颜色的调色板GGPLOT2
- 8. jQuery Mobile默认色板
- 9. 谷歌纸板默认失真值
- 10. iOS 7 - 故事板默认色调颜色
- 11. 如何扩大ggplot2中的调色板
- 12. colorful.core.ColorfulError:颜色“默认”是未知的。使用您的调色板中的色彩(默认:X11 rgb.txt中)
- 13. ggplot2中的默认线型?
- 14. CN1仿真器默认为屏幕尺寸
- 15. 仿真可移动分隔线:需要禁用默认拖拽
- 16. 仿真IE9中的IE7。什么是默认?
- 17. Chrome响应式仿真器 - 如何将默认缩放至100%
- 18. django默认页面时调试=真
- 19. 变色龙模板:默认值'tal:switch'
- 20. FFmpeg过滤器“showpalette”总是返回默认调色板
- 21. 将SDL 1.2的默认调色板与SDL_CreateRGBSurface()匹配?
- 22. 如何更改wicket中的调色板的默认标题?
- 23. 什么是seaborn 0.2版中图像的默认调色板?
- 24. Seaborn没有设置其默认调色板进口
- 25. Howto创建或更改SSRS2016默认调色板?
- 26. 默认蓝色
- 27. 如何更改ggplot2的默认背景色?
- 28. 如何在R ggplot2中设置默认的geom_text颜色?
- 29. 如何模仿传单的默认面板按钮
- 30. 如何模仿用于WPF控件的默认模板?
看鳞包 – hadley
甜蜜! brewer_pal会非常有用 – SFun28
是的!我在我的办公桌上保留了一个'display.brewer.all()'的打印输出。我认为我喜欢Set1是最好的因素。 –