R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

这篇具有很好参考价值的文章主要介绍了R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

书接adjustText实践——调整matplotlib散点图标签,避免重复

上文中,matplotlib+adjustText对于我的实例来说并没有起到很好的效果。所以,博主决定在R中利用gglot2+ggrepel绘制,期待效果。

操作过程

博主不常使用R,在此过程中详细记录每一步骤,以作备忘。

1. R读取数据(openxlsx)

library(openxlsx)

fossils = read.xlsx("D://Work_Space/mahonia/1-化石记录/2023-3-17-Mahonia_fossils_leaf.xlsx")

2. 绘制散点图(ggplot2)

2.1 快速绘制散点图(plot)

library(ggplot2)

plot(fossils$Lon, fossils$Lat)

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

2.2 geom_point()

library(gcookbook)
library(dplyr)

ggplot(data = fossils %>% select(Lon, Lat), aes(x=Lon, y=Lat)) + geom_point()

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

2.3 分组展示(分型和年龄)

library(openxlsx)

fossils <- read.xlsx("D://Work_Space/mahonia/1-化石记录/2023-3-17-Mahonia_fossils_leaf.xlsx")

simple_fossils <- fossils %>% select(Genus, Name, Epoch, Lon, Lat, Group)
library(ggplot2)

# plot(fossils$Lon, fossils$Lat)

library(gcookbook)
library(dplyr)

ggplot(data = simple_fossils %>% select(Lon, Lat, Group, Epoch), aes(x=Lon, y=Lat, shape=Group, color=Epoch)) + geom_point()

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

2.4 添加文本注释(geom_text())

ggplot(data = simple_fossils %>% select(Lon, Lat, Group, Epoch, Name), aes(x=Lon, y=Lat, shape=Group, color=Epoch)) + geom_point() + geom_text(aes(label = Name), size = 2)

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

3. 优化文本注释位置(ggrepel)

library(ggrepel)

ggplot(data = simple_fossils %>% select(Lon, Lat, Group, Epoch, Name), aes(x=Lon, y=Lat, shape=Group, color=Epoch)) + geom_point() + geom_text_repel(aes(label = Name), size = 3)

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置
可以看到有许多标签没有显示出来。

尝试减小字体

ggplot(data = simple_fossils %>% select(Lon, Lat, Group, Epoch, Name), aes(x=Lon, y=Lat, shape=Group, color=Epoch)) + geom_point() + geom_label_repel(aes(label = Name), size = 1)

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置
根据警示信息,增加max.overlaps

ggplot(data = simple_fossils %>% select(Lon, Lat, Group, Epoch, Name), aes(x=Lon, y=Lat, shape=Group, color=Epoch)) + geom_point() + geom_label_repel(aes(label = Name), size = 2, max.overlaps = 30)

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

效果也不行,还是挤在一起。

4. 绘制世界地图

4.1 地图

world <- map_data("world")

world_map <- ggplot() + geom_map(data = world, map=world, aes(x=long, y=lat, map_id=region),color = "black", fill = "lightgray", size = 0.1)+scale_x_continuous(breaks = seq(-180, 210, 45), labels = function(x){paste0(x, "°")}) +
  scale_y_continuous(breaks = seq(-60, 100, 30), labels = function(x){paste0(x, "°")})

world_map

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

4.2 散点地图

world_map + geom_point(data = simple_fossils %>% select(Lon, Lat, Group, Epoch, Name), aes(x=Lon, y=Lat, shape=Group, color=Epoch))

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

4.2 合理调整文本

world_map + geom_point(data = simple_fossils %>% select(Lon, Lat, Group, Epoch, Name), aes(x=Lon, y=Lat, shape=Group, color=Epoch)) + geom_label_repel(data=simple_fossils %>% select(Lon, Lat, Group, Epoch, Name), aes(x=Lon, y=Lat, label=Name, color=Epoch,fontface="italic"), size=2, max.overlaps = 100, box.padding = 0.4, label.padding = 0.1)

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

后记

经过一番努力,达到的效果比python绘图要好一些。但是在保存图片时却不如python。后面再努努力吧。文章来源地址https://www.toymoban.com/news/detail-410813.html

到了这里,关于R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • ggplot2关于设置标签和注释

    在ggplot2包内,最主要用以设置标签的函数即geom_text() 字体的设置利用的是 family 参数,其中可以选择sans(黑体)、serif(宋体)、mono(等宽字体) 字体风格分为默认(plain)、粗体(bold)和斜体(italic),而字体风格由fontface参数来控制 字体的对齐方式,由hjust和vjust来设置

    2024年02月06日
    浏览(33)
  • R语言ggplot2——柱形图

    BMI.txt

    2024年02月16日
    浏览(34)
  • R语言可视化【ggplot2】

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

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

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

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

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

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

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

    2024年02月11日
    浏览(38)
  • 跟着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日
    浏览(39)
  • R语言数据绘图学习(0x01)-安装ggplot2与尝试

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

    2024年02月04日
    浏览(34)
  • [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日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包