在ggplot中使用预定义的调色板

有谁知道如何在ggplot中使用预定义的调色板?

我有一个颜色vector我想用:

rhg_cols <- c("#771C19", "#AA3929", "#E25033", "#F27314", "#F8A31B", "#E2C59F", "#B6C5CC", "#8E9CA3", "#556670", "#000000") 

但是当我试图通过它没有发生

 ggplot(mydata, aes(factor(phone_partner_products)), color = rhg_cols) + geom_bar() 

你必须把colour = rhg_cols放在aes()里面。 据我所知,你想在横坐标应用渐变的酒吧(在barplot)因子variables? 然后使用fill – 尝试这个,而不是:

 ggplot(mydata, aes(factor(phone_partner_products), fill = factor(phone_partner_products))) + geom_bar() + scale_fill_manual(values = rhg_cols) 

或尝试实现近似副本:

 ggplot(mydata, aes(factor(phone_partner_products), fill = phone_partner_products))) + geom_bar() + scale_fill_gradient(low = "#771C19", hi = "#000000") 

注意,在第二种情况下,传递一个连续variables来fill美观,因此之后传递scale_fill_gradient 。 如果传递factorfill aes,则必须使用scale_fill_manual(values = rhg_cols)

如果颜色是调色板,请使用scale_colour_manual

 ggplot(mydata, aes(factor(phone_partner_products), colour = colour_variable)) + scale_colour_manual(values = rhg_cols) 

首先将颜色添加到您的数据集中:

 mydata$col <- rhg_cols 

然后将颜色映射到该列并使用scale_colour_identity

 ggplot(mydata, aes(factor(phone_partner_products, colour = col))) + geom_bar() + scale_colour_identity() 

既然你想要的颜色是颜色审美的价值,你真正想要的是identity尺度,在这种情况下scale_fill_identity

  ggplot(mydata, aes(factor(phone_partner_products)), color=rhg_cols) + geom_bar() + scale_fill_identity()) 

由于您没有提供数据,因此我将使用您的颜色数据稍微不同的示例:

  rhg_cols <- c("#771C19","#AA3929","#E25033","#F27314","#F8A31B", "#E2C59F","#B6C5CC","#8E9CA3","#556670","#000000") mydata <- sample(rhg_cols, 100, replace = TRUE) qplot(mydata, fill = mydata) + scale_fill_identity() 

在这里输入图像描述


注意:为了清楚起见,我省略了+ opts(axis.text.x=theme_text(angle=90))