ggplot2 |legend参数设置,图形精雕细琢

简介: ggplot2 |legend参数设置,图形精雕细琢

本文首发于“生信补给站”公众号 https://mp.weixin.qq.com/s/A5nqo6qnlt_5kF3_GIrjIA

数设置,图形精雕细琢

原创生信补给站生信补给站 2019-08-19 23:30

收录于合集#R-ggplot2可视化23个

学习了ggplot2|详解八大基本绘图要素后,就可以根据自己的需要绘制图形。前面也给出了一些ggplot2绘制生信分析基本图形的例子pheatmap|暴雨暂歇,“热图”来袭!!!ggplot2-plotly|让你的火山图“活”过来ggplot2|扩展包从0开始绘制雷达图ggplot2| 绘制KEGG气泡图ggplot2|绘制GO富集柱形图ggplot2|从0开始绘制PCA图ggplot2|ggpubr进行“paper”组图合并,本文将介绍一些对legend的细节操作来完成图形的“精雕细琢”。


载入R包和数据

mtcars数据集作为示例数据
library(ggplot2)
#查看数据集
head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
# 将cyl gear变量转为因子变量
mtcars$cyl<-as.factor(mtcars$cyl)
mtcars$gear <- as.factor(mtcars$gear)

绘制基本图形

#gear为横坐标,对mpg做箱线图,gear填充颜色

p <- ggplot(mtcars, aes(x=gear, y=mpg, fill=gear)) + geom_boxplot()

p

设置 legend position

使用 theme() 参数设置legend位置

# 可选参数为“left”,“top”, “right”, “bottom”.

p + theme(legend.position="bottom")

# 数值向量 c(x,y) 调控位置

p + theme(legend.position = c(0.8, 0.2))

更改legend 的title , font styles

# legend title
p + theme(legend.title = element_text(colour="blue", size=10,
                                     face="bold"))
# legend labels
p + theme(legend.text = element_text(colour="blue", size=10,
                                    face="bold"))


设置 legend 背景色

#fill设置legend box背景色,colour设置边框颜色

p+theme(legend.background=element_rect(fill="lightblue",

                                size=0.5, linetype="solid",

                                colour="darkblue"))

设置legend items顺序

scale_x_discrete自定义设置顺序

p + scale_x_discrete(limits=c("3", "5", "4"))

去除legend

# 去除legend title
p + theme(legend.title = element_blank())
# 去除整个legend
p + theme(legend.position='none')

image.png


guides 设置specific aesthetic

使用guides()参数来设置或移除特定的美学映射(fill, color, size, shape等).

因子变量cyl和gear映射为点图的颜色和形状,qsec决定点的大小。

更多用法可参考   链接

p <- ggplot(data = mtcars,
   aes(x=mpg, y=wt, color=cyl, size=qsec, shape=gear))+
   geom_point()
# 不设定specific aesthetic时候
p

设置多个legend的位置

# 更改 legend position
p +theme(legend.position="bottom")
# Horizontal legend box
p +theme(legend.position="bottom", legend.box = "")

image.png

设置multiple guides顺序

The function guide_legend() is used :
p+guides(color = guide_legend(order=1),
        size = guide_legend(order=2),
        shape = guide_legend(order=3))

去除particular aesthetic

通过设置FALSE,可不展示对应的legend

p+guides(color = FALSE)

也可以使用scale_xx.函数去掉特定的legend

# Remove legend for the point shape
p+scale_shape(guide=FALSE)
# Remove legend for size
p +scale_size(guide=FALSE)
# Remove legend for color
p + scale_color_manual(values=c('#999999','#E69F00','#56B4E9'),
                      guide=FALSE)


通过以上参数的设置即完成对所绘制图形的legend的细节修改,得到自己所需要的图形。


参考资料:http://www.sthda.com/english/wiki/ggplot2-legend-easy-steps-to-change-the-position-and-the-appearance-of-a-graph-legend-in-r-software

相关文章
|
6月前
|
存储 编解码 数据可视化
【Matplotlib】figure方法之图形的保存
【Matplotlib】figure方法之图形的保存
209 1
|
5月前
|
计算机视觉
使用hist()函数绘制直方图
【6月更文挑战第7天】使用hist()函数绘制直方图。
41 1
|
2月前
echarts中使用散点scatter更改颜色却不生效的问题
本文讨论了在ECharts中使用散点图(scatter)时更改颜色不生效的问题。原因是项目中使用了`visualMap`组件,它具有最高的优先级,导致自定义的颜色设置被覆盖。解决方法是在`visualMap`组件中增加`seriesIndex`属性,指定它只对特定的系列(series)生效,从而避免影响散点图的颜色设置。文章提供了详细的代码示例和解决办法。
62 2
|
4月前
|
数据采集 数据可视化 数据处理
我们来看一个简单的`matplotlib`代码示例,它使用`plot()`和`scatter()`函数来绘制二维图形。
我们来看一个简单的`matplotlib`代码示例,它使用`plot()`和`scatter()`函数来绘制二维图形。
|
6月前
|
计算机视觉
用hist()函数绘制直方图
用hist()函数绘制直方图。
24 1
|
数据挖掘
ggplot2|从0开始绘制折线图
ggplot2|从0开始绘制折线图
161 0
ggplot2 | 关于标题,坐标轴和图例的细节修改,你可能想了解
ggplot2 | 关于标题,坐标轴和图例的细节修改,你可能想了解
349 0
|
数据挖掘
ggplot2|从0开始绘制直方图
ggplot2|从0开始绘制直方图
299 0
|
数据可视化 数据挖掘 Python
跟着Nature学作图:R语言ggplot2散点图和柱形图完整示例(Extended Fig3)
跟着Nature学作图:R语言ggplot2散点图和柱形图完整示例(Extended Fig3)
python 绘制所有线条、散点等 可用的标记符号(marker)
python 绘制所有线条、散点等 可用的标记符号(marker)
python 绘制所有线条、散点等 可用的标记符号(marker)