首页 > 其他分享 >R : 冲击图

R : 冲击图

时间:2023-10-21 11:00:53浏览次数:19  
标签:p1e library 冲击 Phylum ggalluvial 图形 数据

学习的源头在上图,自己稍微做了点修改

library(reshape2) # 重塑数据框的包,可以实现长数据和宽数据之间的转化
# 加载ggalluvial包(绘图本图所用关键R包),基于ggplot2的ggalluvial包可用来绘制冲击图
library(ggalluvial)
library(ggsci) # ggsci包含期刊或软件的经典配色,可用于ggplot2()配色
setwd("C:\\Users\\Administrator\\Desktop")
# 读取绘制数据,行为菌的名称,列为不同盐度,表中数据为菌的相对丰度
d1e0 <- read.table("ProClass.txt", sep = "\t", header = TRUE) # 示例数据可在GitHub上获取

# 将宽数据拉长,转化后"自变量"列为variable,代表梯度不同的盐度,"因变量"列为Value,代表菌的相对丰度
d1e = as.data.frame(melt(d1e0, id.vars = c("Phylum"))) # id.vars=c()用于指定要保留的字段


# 预设渐变色并绘制冲击图
taxcol <- c("#64A4CC", "#9CCEE3", "#C7E5DB", "#ECF6C8", "#FEEDAA",
            "#FDC980", "#F89D59", "#E75B3A", "#D7191C")
p1e <- ggplot(data=d1e,aes(x = variable, y = value, alluvium = Phylum)) + 
  geom_alluvium(aes(fill = Phylum), alpha = 1) +
  scale_fill_manual(values = taxcol) + 
  scale_x_discrete(breaks = c("B1W4_3", "B1W6_3", "B1W8_3", "B1W10_3"), 
                   labels = c("W4", "W6", "W8", "W10")) + 
  theme_minimal() + 
  theme(panel.grid.minor = element_blank(),
        panel.grid.major = element_blank(),
        axis.ticks.x = element_line(color = "black", size = 0.5), # 调整刻度线的颜色和大小
        axis.ticks.length = unit(0.3, "cm"), # 调整刻度线长度
        plot.margin = unit(c(1 , 1, 1, 1), "cm")) + # 调整整个图形的边距
  xlab("Growth and development period") +
  ylab("Relative abundance (%)")

p1e
ggsave("冲击图.pdf", p1e, width = 8, height = 5)
  1. library(reshape2): 加载reshape2包,这个包提供了一些函数,用于重塑数据框,例如将宽数据转换为长数据。

  2. library(ggalluvial): 加载ggalluvial包,它是基于ggplot2的,主要用于绘制冲击图(Alluvial diagrams)。

  3. library(ggsci): 加载ggsci包。这个包提供了一系列的配色方案,这些配色方案来自于各种知名的学术期刊和软件。

  4. setwd("C:\\Users\\Administrator\\Desktop"): 设置工作目录为桌面。

  5. d1e0 <- read.table("ProClass.txt", sep = "\t", header = TRUE): 从桌面读取一个名为"ProClass.txt"的文件,该文件中的字段是用制表符(tab)分隔的,并且文件具有标题行。

  6. d1e = as.data.frame(melt(d1e0, id.vars = c("Phylum"))): 使用melt函数将宽数据d1e0转化为长数据。这里保持"Phylum"列不变,其它的列都会被转换为两列,一列名为"variable",一列名为"value"。

  7. taxcol部分定义了一个颜色向量。

  8. p1e <- ggplot(...): 使用ggplot函数创建一个图形对象p1e

    • data=d1e:使用前面转化后的数据d1e
    • aes(x = variable, y = value, alluvium = Phylum): 映射数据的字段到图形的各个元素。
    • geom_alluvium(aes(fill = Phylum), alpha = 1): 添加冲击层到图,使用"Phylum"列的值来决定其填充颜色。
    • scale_fill_manual(values = taxcol): 手动设置填充颜色。
    • scale_x_discrete(...): 对x轴进行调整。
    • theme_minimal(): 使用简洁的主题。
    • 后面的theme(...)函数进一步自定义了图形的各种元素,例如网格线、刻度线的颜色、大小等。
    • xlab(...)ylab(...)函数分别设置x轴和y轴的标签。
  9. p1e: 这一行代码将会打印并展示图形。

  10. ggsave("冲击图.pdf", p1e, width = 8, height = 5): 使用ggsave函数将图形保存为PDF文件,文件名为"冲击图.pdf",指定了图形的宽和高。

标签:p1e,library,冲击,Phylum,ggalluvial,图形,数据
From: https://www.cnblogs.com/wzbzk/p/17778622.html

相关文章

  • 绝对赢家!晋级美国公开杯决赛,梅西将冲击生涯第45冠!
    美国公开杯半决赛,迈阿密国际战胜辛辛那提FC,晋级决赛。迈阿密国际决赛的对手是休斯顿迪纳摩vs皇家盐湖城的胜者,决赛将于9月27日上演。梅西届时也将冲击生涯第45座冠军。梅西目前已经获得了44座冠军,位居历史第一。......
  • 面对AI冲击,技术人才该如何考核?
    一天下午,在与知名企业的技术交流会议室里,一位兄弟企业的CTO小力苦笑着,分享了一个技术招聘的故事: “我们有个高级工程师,为了搞定MySQL三个表Join的问题,搞了一整天都研究不出来。结果他尝试将表结构扔给AI,谁知道5分钟内就解决了这个难题。” 同时,一位知名互联网企业的技术主管......
  • 一种电磁式爆炸分离冲击环境模拟试验技术研究
    (1)研究背景与意义(要解决什么问题):    爆炸分离冲击是航天器所经历的最严酷的力学环境之一,为了避免一些箭载仪器设备或者结构在飞行中损坏,因此需要进行爆炸分离冲击环境试验。由于针对宽频响、高幅值的爆炸分离冲击环境的模拟无法对冲击加载载荷进行准确的测量与描述,且实验系......
  • 视觉冲击数据可视化设计案例 激发你的可视化设计灵感
    众所周知,数据可以非常强大——当你真正理解它告诉你什么时。 数据和信息可视化(数据可视化或信息可视化)是对大量复杂的定量、定性数据、信息进行设计和创建易于沟通、易于理解的图形或视觉表示的实践,在静态、动态或交互式视觉项目的帮助下,从某个专业领域为更广泛的受众提供帮......
  • chatGPT对软件测试人员的冲击和影响
    目前大家都清楚类似chatGPT生成式人工智能的解决方案的大热,作为软件测试人员,或者相关行业的从业人员,需要思考的问题是,我们需要怎样持续学习来应对这种产业升级或者是类似新的技术迭代。 据我的感觉类似chatGPT的人工智能已经对软件测试人员的工作方式和职责产生了重大影响。以下是......
  • chatGPT对软件测试人员的冲击和影响
    目前大家都清楚类似chatGPT生成式人工智能的解决方案的大热,作为软件测试人员,或者相关行业的从业人员,需要思考的问题是,我们需要怎样持续学习来应对这种产业升级或者是类似新的技术迭代。据我的感觉类似chatGPT的人工智能已经对软件测试人员的工作方式和职责产生了重大影响。以下是一......
  • 基于DSP+FPGA+AD9238的冲击波超压测试系统设计与实现
    对冲击波关键特征参数进行可靠、精确地评估是进行军事行动规划的前提和依据,测试结果可以为战斗部设计提供参考,也可以为武器弹体材料的研发制造提供有效依据。近年来,随着集成电子技术与软件系统取得突破性成果,冲击波测试技术获得了稳定的发展。2.2测试系统的总体框架......
  • 5月TIOBE编程语言:Python持续第一,C++将冲击前三
    新的TIOBE5月编程语言榜单出炉了,让我们一起看一下这次有哪些新看点:Python稳居第一,C++或将冲至Top3本次的榜单和4月相比没有明显变化,Top5依然是Python、C、Java、C++......
  • PPT 笔刷:让你的PPT充满视觉冲击
    其实就是下载的AI效果辅助文字展示辅助图片展示创意展示图片,增强视觉冲击力使用删除外面的边框https://www.bilibili.com/video/BV1ha411g7f5?p=16......
  • 现代全面预算管理软件如何帮助企业应对不确定因素的冲击?
    众所周知,不确定因素的影响一直以来都是企业需要攻克的难关,升级传统治理模式和应对方式成为了企业在当下商业环境的又一重要任务。此时此刻,一个现代的、能够帮助企业摆脱困境......