ggplot2--legend图例的修改

> head(msleep)

                        name      genus  vore        order conservation sleep_total sleep_rem sleep_cycle awake brainwt bodywt

1                    Cheetah   Acinonyx carni    Carnivora           lc        12.1        NA          NA  11.9      NA  50.000

2                 Owl monkey      Aotus  omni     Primates                 17.0       1.8          NA   7.0 0.01550   0.480

3            Mountain beaver Aplodontia herbi     Rodentia           nt        14.4       2.4          NA   9.6      NA   1.350

4 Greater short-tailed shrew    Blarina  omni Soricomorpha           lc        14.9       2.3   0.1333333   9.1 0.00029   0.019

5                        Cow        Bos herbi Artiodactyla domesticated         4.0       0.7   0.6666667  20.0 0.42300 600.000

6                    Three-toed sloth   Bradypus herbi       Pilosa                 14.4       2.2   0.7666667   9.6      NA   3.850

 

p<-ggplot(data = msleep, aes(x=sleep_total,y= sleep_cycle,colour = vore))+geom_point();

 ggplot2--legend图例的修改_第1张图片

   如上图所示,ggplot2中的legend包括四个部分:legend.tittle, legend.text, legend.key, legend.backgroud。针对每一部分有四种处理方式:

element_text()绘制标签和标题,可控制字体的family, face, colour, size, hjust, vjust, angle, lineheight,当改变角度时,序将hjust调整至01.

element_rect()绘制主要供背景使用的矩形,你可以控制颜色的填充(fill)和边界的colour, size, linetype

element_blank()表示空主题,即对元素不分配相应的绘图空间。该函数可以山区我们不感兴趣的绘图元素。使用之前的colour=NAfill=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给定的相对边角位置表示(取01之间的值),它是一个长度为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)))

 

参考资料:

图例变更参考资料:https://github.com/hadley/ggplot2/wiki/Legend-Attributes

ggplot2:数据分析与图形艺术

转载至:http://blog.sina.com.cn/s/blog_670445240102v250.html

你可能感兴趣的:(R,ggplot2,R)