相关文章推荐
安静的麻辣香锅  ·  Flutter Text ...·  1 周前    · 
乐观的番茄  ·  python jsonpath ...·  1 月前    · 
打盹的地瓜  ·  R 循环 | 菜鸟教程·  1 年前    · 
暗恋学妹的墨镜  ·  司继春(SI Jichun)·  1 年前    · 

【R语言】开通了 R语言 群,大家相互学习和交流,请扫描下方二维码,备注: 姓名- R群 ,我会邀请你入群,一起进步和成长

本文分享用 element_text 自定义Text的属性,包括颜色、字体、大小等信息。我们想一下,在一幅图中, 有哪些地方会涉及到Text呢?

下面这幅图,清楚地告诉我们element_text可以配置各种Text。

可以发现与text相关,有如下内容:

1 整体图的文本信息 ,图的标签信息、主标题,副标题,标注来源

2 坐标轴相关的文本信息 ,x轴和y轴的标题文本信息、x轴和y轴的刻度文本信

3 图例相关的文本信息 ,图例的标题、图例标注的文本信息

我们举例说明,如何使用element_text函数对上述提及的10种文本信息进行自定义和个性化管理,从而让我们的图形文本信息展示更直观和美丽。我们先看一下element_text函数的结构,从函数里的参数信息了解它可以改变和配置那些属性。

我们常用的参数配置包括颜色控制、位置控制、字体控制和大小控制等,具体是那个参数发挥作用,看参数名称就一目了然了。

我们首先生成一幅简单的图形,尽量包括各种文本信息。

library (tidyverse)

library (palmerpenguins)

theme_set(theme_bw( 16 ))

p <- penguins %>%

drop_na %>%

ggplot(aes(x=flipper_length_mm,

y=bill_length_mm,

color=species,

shape=sex))+

geom_point+

labs(title= "Palmer Penguins" ,

subtitle= "Flipper Length vs Bill Length" ,

caption= "@RUser" ,

tag = 'A'

效果图如下:

一、主图相关的文本信息做自定义

关注的文本信息有plot.title、plot.subtitle、plot.caption和plot.tag。参照代码如下:

# 字体设置

windowsFonts(

# 中文字体

lishu = windowsFont(family = "LiSu" ), # 隶书

yahei = windowsFont(family = "Microsoft YaHei" ), # 微软雅黑

xinwei = windowsFont(family = "STXingwei" ), # 华文新魏

kaiti = windowsFont(family = "KaiTi" ), # 楷体

heiti = windowsFont(family = "SimHei" ), # 黑体

# 英文字体

arial = windowsFont(family = "Arial" ), # Arial字体

newman = windowsFont(family = "Times New Roman" ), #Times New Roman字体

hand = windowsFont(family = "Lucida Calligraphy" ), # Lucida手写体

Helvetica = windowsFont(family = "Helvetica" ) # 印刷体

p + theme(plot.title= element_text(size=24,

color= "blue" ,

face= "bold" ,

family = "lishu" ), # 主标题文本信息控制

plot.subtitle= element_text(size=16,

color= "red" ,

face= "bold" ), # 副标题文本信息控制

plot.caption= element_text(size=16,

color= "pink" ,

face= "bold" ), # 来源备注文本信息控制

plot.tag = element_text(size=16,

color= "red" ,

face= "bold" ) # 图形标注文本信息控制

效果图如下:

二、坐标轴相关文本信息自定义

关注的文本信息包括axis.title.x、axis.title.y、axis.text.x和axis.text.y。

参考代码如下:

p + theme(axis.title.x = element_text(size= 16 ,

color= "purple" ,

face= "bold" ,

angle= 0 ), # x轴标题文本信息控制

axis.title.y = element_text(size= 16 ,

color= "purple" ,

face= "bold" ,

angle= 90 ), # y轴标题文本信息控制

axis. text .x= element_text(family = "lishu" ,

face= "bold" , colour= "black" ,

size= 10 ), # x轴刻度文本信息控制

axis. text .y = element_text(family = "lishu" ,

face= "bold" ,

colour= "black" ,

size= 10 ) # y轴刻度文本信息控制

效果图如下:

三、图例相关文本信息自定义

关注的文本信息包括:legend.title和legend.text。

参考代码如下:

p + theme(legend.title=element_text(color= "purple" ,

face= "bold" ,

size= 12 ), # 图例标题文本信息控制

legend.text=element_text(family = "lishu" ,

face= "bold" ,

color= "green" ,

size= 10 ) #图例标注文本信息控制

ggsave( "图例相关文本信息自定义示范图形例子.png" )

效果图如下:

本文R代码完整版:

###### ###### ###### ####

#文本信息自定义管理

### ###### ###### ###### #

library(tidyverse)

library(palmerpenguins)

theme_set(theme_bw( 16 ))

p <- penguins %>%

drop_na %>%

ggplot(aes(x=flipper_length_mm,

y=bill_length_mm,

color=species,

shape=sex))+

geom_point+

labs(title= "Palmer Penguins" ,

subtitle= "Flipper Length vs Bill Length" ,

caption= "@RUser" ,

tag = 'A'

# 一、主图相关的文本信息做自定义

# 字体设置

windowsFonts(

# 中文字体

lishu = windowsFont(family = "LiSu" ), # 隶书

yahei = windowsFont(family = "Microsoft YaHei" ), # 微软雅黑

xinwei = windowsFont(family = "STXingwei" ), # 华文新魏

kaiti = windowsFont(family = "KaiTi" ), # 楷体

heiti = windowsFont(family = "SimHei" ), # 黑体

# 英文字体

arial = windowsFont(family = "Arial" ), # Arial字体

newman = windowsFont(family = "Times New Roman" ), #Times New Roman字体

hand = windowsFont(family = "Lucida Calligraphy" ), # Lucida手写体

Helvetica = windowsFont(family = "Helvetica" ) # 印刷体

p + theme(plot.title= element_text(size= 24 ,

color= "blue" ,

face= "bold" ,

family = "lishu" ), # 主标题文本信息控制

plot.subtitle= element_text(size= 16 ,

color= "red" ,

face= "bold" ), # 副标题文本信息控制

plot.caption= element_text(size= 16 ,

color= "pink" ,

face= "bold" ), # 来源备注文本信息控制

plot.tag = element_text(size= 16 ,

color= "red" ,

face= "bold" ) # 图形标注文本信息控制

# 二、坐标轴相关文本信息自定义

p + theme(axis.title.x = element_text(size= 16 ,

color= "purple" ,

face= "bold" ,

angle= 0 ), # x轴标题文本信息控制

axis.title.y = element_text(size= 16 ,

color= "purple" ,

face= "bold" ,

angle= 90 ), # y轴标题文本信息控制

axis.text.x= element_text(family = "lishu" ,

face= "bold" , colour= "black" ,

size= 10 ), # x轴刻度文本信息控制

axis.text.y = element_text(family = "lishu" ,

face= "bold" ,

colour= "black" ,

size= 10 ) # y轴刻度文本信息控制

# 三、图例相关文本信息自定义

p + theme(legend.title=element_text(color= "purple" ,

face= "bold" ,

size= 12 ), # 图例标题文本信息控制

legend.text=element_text(family = "lishu" ,

face= "bold" ,

color= "green" ,

size= 10 ) #图例标注文本信息控制

ggsave( "图例相关文本信息自定义示范图形例子.png" )

关于利用ggplot2包的element_text函数对10种文本信息做自定义控制,有什么问题,请留言或者加入群,一起讨论。

参考资料:

1https://cmdlinetips.com/2021/05/tips-to-customize-text-color-font-size-in-ggplot2-with-element_text/

如何说一口流利的英语? 伙伴们可以看下这个视频,若是有启发,请点赞、关注和分享。

1 R语言做商业智能,助你提高商业生产率

2 用R、tidyverse和mlr做机器学习

3 推断统计与数据科学,moderndive和tidyverse包

4 R for machine learning,从经典的机器学习算法入手

5 R for everyone,人人都可学R和用R,以发现数据里的价值 返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。