对不起,由于我在这个网站上的名声有限,我无法提供图片……
p <- ggplot()+ geom_line(data=data,aes(x,y,color=Label))+ scale_colour_brewer(palette="Oranges")
我使用了调色板“Oranges”,因为我想生成一系列具有相似而不同颜色的线条.
但是,较低/较高范围的颜色太浅,所以我想设置调色板的限制以避免发白.
我知道我应该指定像scale_color_gradient(low =“green”,high =“red”)这样的东西,但是如何找到给定调色板的指定颜色?
非常感谢!
解决方法
由于您有一个离散比例,您应该能够手动创建颜色集并使用scale_color_manual而不会有太多麻烦.
library(ggplot2) theme_set(theme_bw()) fake_data = data.frame( x = rnorm(42),y = rnorm(42),Label = rep(LETTERS[1:7],each = 6)) p_too_light <- ggplot()+ geom_line(data=fake_data,color=Label))+ scale_colour_brewer(palette="Oranges") p_too_light
现在使用brewer.pal和http://www.datavis.ca/sasmac/brewerpal.html.
library(RColorBrewer) my_orange = brewer.pal(n = 9,"Oranges")[3:9] #there are 9,I exluded the two lighter hues p_better <- ggplot()+ geom_line(data=fake_data,color=Label))+ scale_colour_manual(values=my_orange) p_better
如果你有超过6个类别,你可以使用colorRampPalette与之前brewer.pal调用的边界颜色.但是,现在选择调色板方案需要更多考虑(也许为什么ggplot2不会自动为离散比例执行此操作).
fake_data2 = data.frame( x = rnorm(140),y = rnorm(140),Label = rep(LETTERS[1:20],each = 7)) orange_palette = colorRampPalette(c(my_orange[1],my_orange[4],my_orange[6]),space = "Lab") my_orange2 = orange_palette(20) p_20cat <- ggplot()+ geom_line(data=fake_data2,color=Label))+ scale_colour_manual(values=my_orange2) p_20cat