ggplot2 legend圖例的修改


ggplot2中的legend包括四個部分: legend.tittle, legend.text, legend.key, legend.backgroud。針對每一部分有四種處理方式:

element_text()繪制標簽和標題,可控制字體的family, face, colour, size, hjust, vjust, angle, lineheight,當改變角度時,序將hjust調整至0或1.
element_rect()繪制主要供背景使用的矩形,你可以控制顏色的填充(fill)和邊界的colour, size, linetype
element_blank()表示空主題,即對元素不分配相應的繪圖空間。該函數可以山區我們不感興趣的繪圖元素。使用之前的colour=NA,fill=NA,讓某些元素不可見,但仍然占繪圖空間。
element_get()可得到當前主題的設置。
theme()可在一幅圖中對某些元素進行局部性修改,theme_update()可為后面圖形的繪制進行全局性的修改。

不加Legend
p+theme(legend.position='none');

刪除legend.tittle
p+theme(legend.title=element_blank())

圖例(legend)的位置
圖例(legend)的位置和對齊使用的主題設置legend.position來控制,其值可為right,left,top,bottom,none(不加圖例,或是一個表示位置的數值。這個數值型位置由legend.justfication給定的相對邊角位置表示(取0和1之間的值),它是一個長度為2的數值型向量:右上角為c(1,1),左下角為c(0,0)
例如:p+theme(legend.position=”left”)
 

修改legend.tittle內容
p+scale_colour_hue("what does it eat?",breaks=c("herbi","carni","omni",NA),labels=c("plants","meat","both","don't know"));

修改尺寸大小
p+theme(legend.background=element_rect(colour="purple",fill="pink",size=3,linetype="dashed"));
p+theme(legend.key.size=unit(2,'cm'));
p+theme(legend.key.width=unit(5,'cm'));
p+theme(legend.text = element_text(colour = 'red', angle = 45, size = 10, hjust = 3, vjust = 3, face = 'bold'))
報錯:could not find function "unit"
解決辦法:library(grid)

顏色的修改以及一致性:
library(RColorBrewer);
newpalette<-colorRampPalette(brewer.pal(12,"Set3"))(length(unique(eee$name)));
p+scale_fill_manual(values=newpalette);
p+geom_bar(position="stack",aes(order=desc(name)))

 

REF:

https://github.com/hadley/ggplot2/wiki/Legend-Attributes


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM