首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ggplot2中手动选择色调/酿酒颜色

在ggplot2中手动选择色调/酿酒颜色
EN

Stack Overflow用户
提问于 2013-08-23 06:13:23
回答 1查看 1.7K关注 0票数 1

我试图使用R中的ggplot2库生成渐进式地块。

我所说的‘渐进’的意思是,为了演示的目的,我想一次把一行添加到一个图中,所以我会多次生成一个包含多行的单独的情节,每一行都有一个额外的绘制线。

例如,在ggplot2中,使用scale_colour_hue()效果很好,只是每一行的颜色都会随着情节的不同而变化。我想保持颜色不变(即第1点第1行有颜色X,在第5区,第1行仍然有颜色X...etc)。我可以通过使用scale_colour_manual()手动声明颜色来实现这一点,但我觉得自己受到了这些颜色(“红色”、“蓝色”等)的美学的限制。我真的需要找到每种颜色的十六进制值吗?比如色调调色板,还是有更简单的方法,可以指示scale_colour_hue()函数在每次添加新行时都按固定顺序使用它的调色板?

谢谢,谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-23 06:43:42

如果您事先知道您希望添加的线条总数,您可以创建一个标度,其中包含适当的颜色和名称,用于scale_colour_manual

代码语言:javascript
复制
library(RColorBrewer)
library(plyr)
# a function to create a brewer palette of any length (kittens will be killed)
myBrewerPal <- function(pal = 'Spectral'){
  colorRampPalette(brewer.pal(name = pal, n = 11))
}

# function to create a named vector of colours for a given 
# vector x
create.palette <- function(x, pal = 'Spectral'){
  ux <- sort(unique(x))
  n <- length(ux)
  setNames(myBrewerPal(pal)(n), ux)

}

# create a manual scale with the named values part
myPal <- scale_colour_manual(name = 'Gear', values = create.palette(factor(mtcars$gear)))


# the base plot (no lines)
baseplot <- ggplot(mtcars, aes(x=hp, y = disp, colour = factor(gear))) + myPal
# 1 line
baseplot + geom_line(subset = .(gear==3))

代码语言:javascript
复制
# 2 lines (gear = 3 is consistent)
baseplot + geom_line(subset = .(gear %in% 3:4))

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18395975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档