小师妹带你认识R数据可视化之ggplot主题






小师妹带你认识R数据可视化之ggplot主题

小师妹  生信果  2023-08-28 19:00:05

点击蓝字,关注我们

小师妹继续带大家学习R数据可视化,今天小师妹要向小伙伴们介绍的是主题的一些相关内容。在介绍之前小师妹还是先强烈推荐一下自己的工具平台(http://www.biocloudservice.com/home.html),那么接下来就让小师妹带领大家一起来看看关于ggplot主题的内容吧。

ggplot是一个用于数据可视化的R语言包,它基于图形语法理论,提供了一种简洁、一致的方式来创建各种类型的图表。ggplot的主题是指图表的整体样式和外观。ggplot提供了一系列内置的主题,可以轻松地应用于创建的图表上。

下面是一些常用的ggplot主题:

1.theme_gray():默认主题,使用灰色背景和白色网格线。

2.theme_bw():黑白主题,使用白色背景和黑色网格线。

3.theme_minimal():简约主题,没有网格线和背景色。

4.theme_classic():经典主题,带有灰色背景和白色网格线。

5.theme_void():空白主题,没有背景和网格线,只有数据图形。

除了内置的主题,ggplot还提供了许多可以自定义的主题选项,可以调整图表的各个方面,如背景颜色、文本样式、网格线样式等。可以使用theme()函数来设置这些选项,通过使用内置的主题或自定义主题选项,可以轻松地调整ggplot图表的整体样式和外观,以满足特定的可视化需求。

 内置主题

小师妹上面列举的这些常用主题,默认都包含 4 个参数:

1.base_size:轴标题字体大小,以 pts 为单位。图形标题比它大 20%,刻度标签比它小 20%

2.base_family:字体

3.base_line_size:线条元素的大小

4.base_rect_size:矩形元素的大小


又到了小师妹一天一度的举例环节啦:

我们先来绘制一个图形。

> mtcars2 <- within(mtcars, {+ vs <- factor(vs, labels = c("V-shaped", "Straight"))+ am <- factor(am, labels = c("Automatic", "Manual"))+ cyl <- factor(cyl)+ gear <- factor(gear)+ })> p1 <- ggplot(mtcars2) ++ geom_point(aes(x = wt, y = mpg, colour = gear)) ++ labs(title = "Xiao Guo Sheng Xin",+ subtitle = "(202307)",+ caption = "R yu yan xue tu",+ tag = "Figure 1",+ x = "Weight",+ y = "Fuel economy",+ colour = "Gears")> p1

接下来我们来更改不同的主题。

> p1 + theme_gray()

如上图是默认的主题,浅灰色背景,白色网格线。

> p1 + theme_bw()

上图这个主题是白色背景,深灰色网格线。下面小师妹一起绘制一些其他主题的图片。

> p3 <- p1 + theme_linedraw()> p4 <- p1 + theme_dark()> p5 <- p1 + theme_light()> p6 <- p1 + theme_classic()> p7 <- p1 + theme_void()> p8 <- p1 + theme_minimal()> plot_grid(p3, p4, p5, p6, p7, p8, labels = LETTERS[1:6], nrow = 3)

2修改主题

修改全局主题之后,该主题会应用于之后绘制的所有图形中,全局主题设置在ggplot中主要包含以下几个函数:

1.theme_set():用于设置全局主题。可以通过传入一个主题对象(如theme_gray())或自定义的主题对象来设置全局主题。设置全局主题后,在后续的所有图表中都会应用该主题。

2.theme_update():用于更新全局主题。可以通过传入一个主题对象来更新全局主题的部分或全部参数。更新全局主题后,所有已绘制的图表都会自动应用更新后的主题。

3.theme_get():用于获取当前的全局主题。返回当前全局主题的对象,可以进行进一步的修改和定制。


这些函数可以用于全局地设置和修改主题,以便在整个R会话中一致地应用于所有的ggplot图表,通过使用全局主题设置函数,可以轻松地在整个R会话中统一和管理图表的主题,提高可视化的一致性和效率。


小师妹要开始举例啦:

我们还是先请出我们的老朋友吧。

> p <- ggplot(mtcars, aes(mpg, wt)) +

+   geom_point()

> p

我们试着返回之前的主题。

> before <- theme_set(theme_bw())> p

theme_update()函数用于更新全局主题的参数。可以通过传入一个主题对象来更新全局主题的部分或全部参数,只会修改设置的元素,未显式设置的元素不会修改。

> theme_update(panel.grid.minor = element_line(colour = "purple"))> p

而theme_replace 函数来修改某一元素的值时,未显式设置的元素值都会赋值为 NULL。

> theme_replace(panel.grid.minor = element_line(colour = "purple"))> p

返回默认主题。

> theme_set(before)> p

好啦,今天小师妹的分享就到这里啦,不知道小伙伴们收获了多少知识呢,小师妹在后面的文章中还会继续更新R数据可视化的知识,小伙伴们记得随时关注小师妹哦,最后提醒小伙伴们一定记得要关注小师妹的工具平台呀

(http://www.biocloudservice.com/home.html),小伙伴们再会啦。