ggplot2关于设置标签和注释

这篇具有很好参考价值的文章主要介绍了ggplot2关于设置标签和注释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设置标签

在ggplot2包内,最主要用以设置标签的函数即geom_text()

一、设定常用设置

1.设定字体

字体的设置利用的是family参数,其中可以选择sans(黑体)、serif(宋体)、mono(等宽字体)

> rm(list = ls())
> #定义数据框
> df <- data.frame(x=1,y=3:1,
+                  family=c('sans','serif','mono'))
> ggplot(df,aes(x,y))+
+   geom_text(aes(label=family,family=family))

ggplot2关于设置标签和注释

2.设定字体风格

字体风格分为默认(plain)、粗体(bold)和斜体(italic),而字体风格由fontface参数来控制

> #定义数据框
> df <- data.frame(x=1,y=3:1,
+                  face=c('plain','bold','italic'))
> ggplot(df,aes(x,y))+
+   geom_text(aes(label=face,fontface=face))

ggplot2关于设置标签和注释

3.设定字体位置

字体的对齐方式,由hjust和vjust来设置
hjust参数可以设置为'left','center','right','inward'(文字向图中央对齐)
vjust参数可以设置为'bottom','middle','top','inward','outward'

> df <- data.frame(x=c(1,2,1,2,1.5),y=c(1,1,2,2,1.5),
+                  text=c('bottom-left','bottom-right','top-left',
+                         'top-right','center')
+                  )

ggplot2关于设置标签和注释

> ggplot(df,aes(x,y))+
+   geom_text(aes(label=text))
> ggplot(df,aes(x,y))+
+   geom_text(aes(label=text),
+             vjust='inward',hjust='inward')

ggplot2关于设置标签和注释size参数可以调整字体大小,angle参数可以定义文本的旋转角度
nudge_xnudge_y参数可以设置标签出现在点的附近,正值为右和上,负值相反

> df <- data.frame(trt=c('a','b','c'),resp=c(1.2,3.4,2.5))
> ggplot(df,aes(resp,trt)) +
+   geom_point() +
+   geom_text(aes(label=paste0('(',resp,')')),
+             nudge_y = -0.25) +
+               xlim(1,3.6)

ggplot2关于设置标签和注释

二、标签优化

1.标签过多

当标签过多时,常常会产生无法繁杂的图,让人无法清晰读懂其中的信息

> ggplot(mpg,aes(displ,hwy)) +
+   geom_text(aes(label=model)) +
+   xlim(1,8)

ggplot2关于设置标签和注释
同时设置check_overlap = TRUE可以将重叠的标签删除

> ggplot(mpg,aes(displ,hwy)) +
+   geom_text(aes(label=model),check_overlap = TRUE) +
+   xlim(1,8)

ggplot2关于设置标签和注释
但如果同时画出点后,就显得有些乱

> ggplot(mpg,aes(displ,hwy)) +
+   geom_point(colour='red') +
+   geom_text(aes(label=model),check_overlap = TRUE) +
+   xlim(1,8)

ggplot2关于设置标签和注释

2.用注释代替图例

directlabels包提供了一系列标签定位方法
绘制点图可以使用smart.grid,而如果是线图则可以指定last.polygonslast.qp

> ggplot(mpg,aes(displ,hwy,colour=class)) +
+   geom_point(show.legend = FALSE) +#隐藏图例
+   directlabels::geom_dl(aes(label=class),method='smart.grid')

ggplot2关于设置标签和注释

3.指定点标签

如果说需要对制造商为toyota的数据点进行标签的设置,只需要在geom_point()内部设定具体的数据库就可以了

#指定点注释
p <- ggplot(mpg, aes(displ, hwy)) +
  geom_point(
    data = filter(mpg, manufacturer == "toyota"), 
    colour = "orange",
    size = 3
  ) +
  geom_point() 
p

ggplot2关于设置标签和注释
但可以看出,因为是标签的原因并没有显示出图例,所以可以利用annotate()函数进行补充

> p + 
+   annotate(geom = "point", x = 5.5, y = 40, colour = "orange", 
+ size = 3) +
+   annotate(geom = "point", x = 5.5, y = 40) + 
+   annotate(geom = "text", x = 5.6, y = 40, label = "toyota", hjust = "left")

ggplot2关于设置标签和注释分别设置点、颜色以及标签于具体的坐标上

设置注释

注释可以为特定的数据点添加标签,在面对表示离群点或其他重要点的情况中尤为有效
geom_rect()可以标注图形中特定的矩阵部分,其中包括了xmin、xmax、ymin、ymax参数。
而geom_vline()、geom_hline()以及geom_abline()函数可以在图形中添加全覆盖的参照线
利用的是economics数据集,首先简答查看一下数据库信息,并绘制线图

> head(economics)
# A tibble: 6 × 6
  date         pce    pop psavert uempmed unemploy
  <date>     <dbl>  <dbl>   <dbl>   <dbl>    <dbl>
1 1967-07-01  507. 198712    12.6     4.5     2944
2 1967-08-01  510. 198911    12.6     4.7     2945
3 1967-09-01  516. 199113    11.9     4.6     2958
4 1967-10-01  512. 199311    12.9     4.9     3143
5 1967-11-01  517. 199498    12.8     4.7     3066
6 1967-12-01  525. 199657    11.8     4.8     3018
> ggplot(economics,aes(date,unemploy)) + geom_line()

ggplot2关于设置标签和注释这里提取各个美国总统作为划分的依据

> presidential <- subset(presidential, start > economics$date[1])

绘制图形,其中所使用的-Inf和Inf分别代表注释的位置,上和下或者左和右
利用geom_rect()函数进行图形分割,利用了上述各个总统进行分割,利用其中fill参数进行填充,此处利用两个党派进行颜色填充,并设置竖直参照线

> p <- ggplot(economics) + 
+   geom_rect(
+     aes(xmin = start, xmax = end, fill = party), 
+     ymin = -Inf, ymax = Inf, alpha = 0.2, 
+     data = presidential
+   ) + 
+   geom_vline(
+     aes(xintercept = as.numeric(start)), 
+     data = presidential,
+     colour = "grey50", alpha = 0.5
+   )

> p

ggplot2关于设置标签和注释

接着设定注释位置,aes内设定具体坐标位置

> p + 
+   geom_text(aes(x = start, y = 2500, label = name), 
+     data = presidential, 
+     size = 3, vjust = 0, hjust = 0, nudge_x = 50) 
+   geom_line(aes(date, unemploy))
> p

最后设定填充颜色

> p + 
  scale_fill_manual(values = c("blue", "red"))
> p

在分面内使用参照线

在通过分面比较组间关系时,利用参照线可以更清晰看出数据间的差别
其中geom_bin2d()可以设置二维密图,也称为二维直方图,其中的bins参数可以设置组数

> # 在分面内使用参照线
> ggplot(diamonds,aes(log10(carat),log10(price))) +
+   geom_bin2d() +
+   facet_wrap(~cut,nrow = 1)

ggplot2关于设置标签和注释

接着构造一个函数,并提取直线方程

> mod_coef <- coef(lm(log10(price)~log10(carat),data = diamonds))
> mod_coef
 (Intercept) log10(carat) 
    3.669207     1.675817 

接着利用geom_abline()函数进行函数插入,内部的intercept参数代表截距,slope参数代表斜率

> ggplot(diamonds,aes(log10(carat),log10(price))) +
+   geom_bin2d() + 
+   geom_abline(intercept = mod_coef[1],slope = mod_coef[2],
+               colour='white',size=1) +
+   facet_wrap(~cut,nrow = 2)

ggplot2关于设置标签和注释文章来源地址https://www.toymoban.com/news/detail-457443.html

到了这里,关于ggplot2关于设置标签和注释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • R语言可视化【ggplot2】

    文章的文字/图片/代码部分/全部来源网络或学术论文或课件,文章会持续修缮更新,仅供学习使用。 目录 R语言可视化【ggplot2】 一、可视化介绍 二、不同情况适用的图形 类别比较:  数值关系: 数据分布:  时间序列:  局部与整体: 举几个例子:  类别比较:柱形图

    2023年04月19日
    浏览(23)
  • R语言tidyverse教程:ggplot2绘图初步

    R语言系列: 编程基础💎循环语句💎向量、矩阵和数组💎列表、数据帧 排序函数💎apply系列函数 tidyverse :readr💎tibble ggplot2有其独特的绘图语法,想要实现数据绘图,除了数据和集合形状之外,还需要一个叫做 aesthetic 的东西,这个不知道应该怎么翻,后面就统一叫做美术

    2024年02月04日
    浏览(27)
  • R语言的ggplot2绘制分组折线图?

    R绘制分组折线图.R 首先看数据情况:group有3组。Time有3组,数据意思是在3组3个时间点测量了某指标,现在要绘制组1、组2、组3某指标y按时间的变化趋势 数据情况: 看看最终的效果图如下: 下面是本次使用的代码 .libPaths () setwd ( \\\"C:/Users/12974/Desktop/百度经验/03图形绘制/03R绘

    2024年01月22日
    浏览(29)
  • R语言画图的-- ggplot2(实现图例的精细修改)

    ggplot2 是R中用来作图的很强的包,但是其用法比较多且各种参数比较复杂,我自己使用的时候还经常需要查阅一些关键参数等,因此想要写一个 r 中 ggplot2 的作图文档,方便自己查阅。 但是今天突然发现了一个网站,这个网站里面包含了 ggplot2 作图的几乎所有内容。有各种图

    2024年02月13日
    浏览(40)
  • R 语言 ggplot2 PCA 主成分分析(虚拟数据集)

    以上代码生成了100行基因,10列样本的矩阵 前五列命名 wt 开头+ 1-5 ,表示正常基因 后五列命名 ko 开头+ 1-5 ,表示缺少基因的样本(knock-out) 给每行基因都统一命名 gene + 1-100 head() 函数默认查看前6行 现在只是定义了矩阵的shape和name,还没填充数值 这段代码的作用是生成一个

    2024年02月11日
    浏览(26)
  • R语言ggplot2 | R语言绘制物种组成面积图(三)

       利用R语言绘制物种组成图。本文以堆叠面积图的方式与大家分享。 面积图又叫区域图。它是在折线图的基础之上形成的, 它将折线图中折线与自变量坐标轴之间的区域使用颜色或者纹理填充,这样一个填充区域我们叫面积。颜色的填充可以更好地突出趋势信息(比如时

    2024年02月13日
    浏览(27)
  • 跟着NatureMetabolism学作图:R语言ggplot2转录组差异表达火山图

    论文 Independent phenotypic plasticity axes define distinct obesity sub-types https://www.nature.com/articles/s42255-022-00629-2#Sec15 s42255-022-00629-2.pdf 论文中没有公开代码,但是所有作图数据都公开了,我们可以试着用论文中提供的数据模仿论文中的图 今天的推文重复一下论文中的Fig3b 差异表达火山图

    2024年02月08日
    浏览(35)
  • R语言数据绘图学习(0x01)-安装ggplot2与尝试

    一直听说数据分析里R语言是比较‘正统’,况且久闻ggplot2这些R语言的数据分析库大名,想到今后数据分析和整理的需要,这里开一个简单的系列学习一些R语言和ggplot2的绘图基础。本人学习的书籍是Winston Chang大佬的《R Graphics Cookbook》,且稍有一点Python里的Plotnine绘图基础。

    2024年02月04日
    浏览(29)
  • [R] How to communicate with your data? - ggplot2

    We have gone through the basic part of how to clean and process before analyzing your data. R语言具有生成各种图形的多种可能性。 并非所有图形功能对初学者来说都是必要的。 复杂的图形需要长代码。 我们将从简单的图形元素开始,然后逐步定制复杂图形。 Which package do we need: ggplot 2 library (

    2024年03月11日
    浏览(28)
  • ggplot2主题专栏02:时尚又商业范儿十足的ggthemr扩展包

    【简说基因】ggplot2 是一种面向数据的绘图系统,可以先进行数据相关的绘图以探索数据,最后呈现结果时,再通过主题控制所有非数据元素。 ggthemr 是一个 ggplot2 的主题扩展包,其设计理念是:你只需设置主题,然后就可以忘记它,无需改变任何现有代码。主题有几个部分

    2023年04月11日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包