首页 > 其他分享 >R语言1科研绘图(2)

R语言1科研绘图(2)

时间:2022-11-17 21:23:39浏览次数:52  
标签:p2 p3 scale 科研 color sort 语言 绘图 fill

R语言科研绘图(2)

需要导入包

library(ggplot2)
library("ggpubr")  
library(ggsci)
library(gridExtra)

绘制分组条形图

setwd("xx\\barplotGroup")
library(ggplot2)
library("ggpubr")             #引用包
inputFile="input.txt"       #输入
outFile="barplot.png"       #输出
rt=read.table(inputFile,header=T,sep="\t",check.names=F)      #读取输入文件

#绘制
# png(file=outFile,width=7,height=5)
ggbarplot(rt, x="Term", y="Count", fill = "ONTOLOGY", color = "white", 
          orientation = "horiz",   #横向显示
          palette = "aaas",    #配色方案
          legend = "right",    #图例位置
          sort.val = "asc",    #上升排序,区别于desc
          sort.by.groups=TRUE)+    #按组排序
          scale_y_continuous(expand=c(0, 0)) + scale_x_discrete(expand=c(0,0))
          
image-20221117204611819
image-20221117204611819

绘制密度图

#library(ggsci)
#library(gridExtra)
png(file=density.png,width=7,height=5)
set.seed(1234)
wdata = data.frame(
   sex = factor(rep(c("F", "M"), each=200)),
   weight = c(rnorm(200, 55), rnorm(200, 58)))#200个随机数,平均数是55

p=ggdensity(wdata, x = "weight",
          add = "mean", rug = TRUE,
          color = "sex", fill = "sex",
          palette = c("#00AFBB", "#6495ED"))

p1_a=p+scale_color_aaas()
p2_a=p+scale_fill_aaas()
p3=grid.arrange(p1_a,p2_a,ncol=2)

ggsave(p3,file="density.png",height=10,width=10)  # 保存图片
image-20221117204812271
image-20221117204812271

绘制分布图

p1=gghistogram(wdata,x="weight",
            add="mean",rug=TRUE,
            color="sex",fill="sex",palette=c("#00AFBB", "#6495ED"))

p1_b=p1+scale_color_igv()
p2_b=p1+scale_fill_igv()
p3_b=grid.arrange(p1_b,p2_b,ncol=2)
# ggsave(p3_b,file="histogram.pdf",height=12,width=10)
image-20221117205005939
image-20221117205005939

排序柱状图

data("mtcars")

df2 <- mtcars
df2$cyl <- factor(df2$cyl)
df2$name <- rownames(df2) #添加一行name

dfm=df2

dfm$mpg_z <- (dfm$mpg -mean(dfm$mpg))/sd(dfm$mpg)
dfm$mpg_grp <- factor(ifelse(dfm$mpg_z < 0, "low", "high"), 
                     levels = c("low", "high"))

p2=ggbarplot(dfm, x = "name", y = "mpg_z",
          fill = "mpg_grp",           # change fill color by mpg_level
          color = "white",            # Set bar border colors to white
          palette = "jco",            # jco journal color palett. see ?ggpar
          sort.val = "asc",           # Sort the value in ascending order
          sort.by.groups = FALSE,     # Don't sort inside each group
          x.text.angle = 90,          # Rotate vertically x axis texts
          ylab = "MPG z-score",
          xlab = FALSE,
          legend.title = "MPG Group"
          )

p2_a=p2+scale_color_lancet()
p2_b=p2+scale_fill_lancet()

p3_2=grid.arrange(p2_a,p2_b,ncol=2)
p3_2
ggsave(p3_2,file="sort.pdf",height=12,width=10)
image-20221117205121995
image-20221117205121995

竖着排列

p4=ggbarplot(dfm, x = "name", y = "mpg_z",
          fill = "mpg_grp",           # change fill color by mpg_level
          color = "white",            # Set bar border colors to white
          palette = "jco",            # jco journal color palett. see ?ggpar
          sort.val = "desc",          # Sort the value in descending order
          sort.by.groups = FALSE,     # Don't sort inside each group
          x.text.angle = 90,          # Rotate vertically x axis texts
          ylab = "MPG z-score",
          legend.title = "MPG Group",
          rotate = TRUE,
          ggtheme = theme_minimal()
          )

p4_a=p4+scale_color_d3()
p4_b=p4+scale_fill_d3()

p3_3=grid.arrange(p4_a,p4_b,ncol=2)
p3_3
ggsave(p3_3,file="sort2.pdf",height=12,width=10)
image-20221117205304484
image-20221117205304484

所展示的图形都是在Rmarkdown上输出的结果,由于大小限制的原因,有些走样,将图片保存到本地效果会好很多。参考[1]

参考资料

[1]

简书: https://www.jianshu.com/p/a272391297e0

标签:p2,p3,scale,科研,color,sort,语言,绘图,fill
From: https://www.cnblogs.com/weigongwu/p/16900997.html

相关文章

  • LeetCode刷题(2)【链表】【合链表&链表的中间结点】(C语言)
    我的小站——半生瓜のblog快慢指针问题:思路:定义一个快指针和一个慢指针,快指针走到结束的时候,慢指针刚好走到一半。链表的中间结点。876.链表的中间结点-力扣(LeetCode)(le......
  • LeetCode刷题(3)【链表】【环形链表】&扩展(C语言)
    我的小站——半生瓜のblog环形链表141.环形链表-力扣(LeetCode)(leetcode-cn.com)什么是链表带环:链表的最后一个元素不指向空而指向前面的某个结点。思路:快慢指针,慢指针走......
  • C语言二级错题积累(4)
    在栈中,栈项指针的动态变化决定栈中元素的个数。详细设计的人物是为软件结构体中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。扇......
  • C语言二级错题积累(5)
    常用的连续存储管理技术有固定分区存储管理和可变分区存储管理。程序流程图中带有箭头的线段表示的是控制流。若二叉树没有叶子结点,则为空二叉树。带链栈的栈底指针是随栈的......
  • C语言实现贪吃蛇小程序
    参考视频https://www.bilibili.com/video/BV1LN41197zV?from=search&seid=15462998985727977257代码有点缺陷:1.食物有可能会生成在吃不到的地方2.吃掉食物的音效添加失败//......
  • C语言实现推箱子小游戏
    C语言实现推箱子小游戏包括黑窗和图形界面参考视频https://www.bilibili.com/video/BV1By4y1a79o?t=4428BUG:当人进入到目的地的时候会无法移动。#include<stdio.h>#incl......
  • C语言自定义数据类型
    结构体参考视频:https://www.bilibili.com/video/BV1oi4y1g7CF?p=58大纲:结构体的声明结构体的自引用结构体内存对齐结构体传参结构体实现位段(位段的填充&可移植性)charshor......
  • C语言实现飞翔的小鸟小游戏
    参考视频https://www.bilibili.com/video/BV1Xo4y1R7hs缺陷:撞柱子功能暂未实现//飞翔的小鸟#include<stdio.h>//C语言标准头文件#include<graphics.h>//图形库头文件#includ......
  • C语言实现数字字母雨小程序
    //字母数字雨#include<stdio.h>//随机数头文件#include<stdlib.h>//包含easyX图形库可以使用绘图函数以及鼠标操作#include<graphics.h>#include<conio.h>#defineSTR_SIZ......
  • C语言类型转换
    类型转换类型转换:在C语言中,当一个运算符的几个操作数类型不同时,编译器会在进行运算之前将他们共同转化为某种一样的数据类型,一般来说编译器会先将占用内存较小的数据转化为......