文章目录

  • 一、用R的基础绘图系统作图
    • 1.函数plot()
    • 2.直方图和密度曲线图
    • 3.条形图
    • 4.饼图
    • 5.箱线图和小提琴图
    • 6.克里夫兰点图
  • 二、用ggplot2包作图
    • 1.初识ggplot2包
    • 2.分布的特征
    • 3.比例的构成
    • 4.ggsave()保存图形
  • 三、其他图形
    • 1.金字塔图
    • 2.横向堆栈条形图
    • 3.热图
    • 4.三维散点图
    • 5.词云图
  • 总结

一、用R的基础绘图系统作图

基础绘图系统有两类函数:一类是高水平作图函数(直接产生图形的函数);一类是低水平作图函数(在图形基础上加新的图形或者元素)

1.函数plot()

#准备数据
dose <- c(20, 30, 40, 45, 60)
drugA <- c(16, 20, 27, 40, 60)
drugB <- c(15, 18, 25, 31, 40)plot(dose,drugA)
plot(dose,drugA,type = 'b') #默认type=p


lty不同类型的线,pch不同特征的点。

plot(dose,drugA,type='b',xlab = "Dosage",ylab = "Response",lty=1,pch=15)
lines(dose,drugB,type='b',lty=2,pch=17)
legend("topleft",title = "Drug Type",legend=c("A","B"),lty=c(1,2),pch = c(15,17))

2.直方图和密度曲线图

引入MASS包中关于年轻女性厌食症体重变化的数据

> library(MASS)
> data(anorexia)
> str(anorexia)
'data.frame': 72 obs. of  3 variables:$ Treat : Factor w/ 3 levels "CBT","Cont","FT": 2 2 2 2 2 2 2 2 2 2 ...$ Prewt : num  80.7 89.4 91.8 74 78.1 88.3 87.3 75.1 80.6 78.4 ...$ Postwt: num  80.2 80.1 86.4 86.3 76.1 78.1 75.1 86.7 73.5 84.6 ...
hist(Prewt)#直方图
plot(density(Prewt))#密度图


参数col:设置形状颜色;
参数las:值为1设置纵坐标的横向表示。

hist(Prewt,freq = FALSE,xlab = "体重(lbs)",col='red',main = "治疗前体重直方图",las=1)
lines(density(Prewt),col='blue',lwd=2)
rug(Prewt)

3.条形图

以来自一项关于类风湿性关节炎治疗新方法试验的数据集为例:
首先,查看数据。table()用于生成分类变量的频数统计表。

> library(vcd)
> data(Arthritis)
> attach(Arthritis)
> counts<-table(Improved)
> counts
ImprovedNone   Some Marked 42     14     28

barplot()除了展示直方图,还可以展示二维列联表数据。

barplot(counts,xlab="Improvement",ylab = "Frequency",las=1)

counts<-table(Improved,Treatment)
barplot(counts,xlab="Improvement",ylab = "Frequency",col=c("red","yellow","green"),las=1,beside=TRUE)
legend("top",legend=rownames(counts),fill=c("red","yellow","green"))

4.饼图

**饼图:**使用pie()绘制。
paste0():可以根据第三个参数把字符串连接在一起。

percent <- c(5.8, 27.0, 0.5, 20.8, 12.8, 33.1)
disease <- c("上感","中风","外伤","昏厥","食物中毒","其他")
labs<-paste0(disease,percent,"%")
pie(percent,labels = labs,col = rainbow(6))

5.箱线图和小提琴图

**箱型图:**使用boxplot()绘制。

library(MASS)
data(anorexia)
anorexia$wt.change<-anorexia$Postwt-anorexia$Prewt
boxplot(wt.change~Treat,data=anorexia,ylab="Weight change(lbs)",las=1)


**小提琴图:**使用vioplot()绘制。

library(vioplot)
vioplot(wt.change~Treat,data=anorexia,ylab="Weight change(lbs)",las=1,col="gold")

6.克里夫兰点图

**克里夫兰点图:**使用dotchart()绘制。

dotchart(VADeaths)
dotchart(t(VADeaths),pch = 19)

二、用ggplot2包作图

1.初识ggplot2包

ggplot2包提供了一套基于图层语法的绘图系统,各种数据可视化的原则完全一致。以汽车燃油数据集mtcars为例。

library(ggplot2)
p<-ggplot(data=mtcars,mapping=aes(x=wt,y=mpg))
p+geom_point()


数据集中变量am(传动方式)是个分类变量0/1

mtcars$am<-factor(mtcars$am)
ggplot(data=mtcars,aes(x=wt,y=mpg,color=am))+geom_point()
ggplot(data=mtcars,aes(x=wt,y=mpg,color=am))+geom_smooth()

ggplot(data=mtcars,aes(x=wt,y=mpg))+geom_point(aes(color=am))+scale_color_manual(values = c("blue","red"))+stat_smooth()


ggplot2还可以分组绘图。

ggplot(data=mtcars,aes(x=wt,y=mpg))+geom_point()+stat_smooth()+facet_grid(~am)


ggplot2包还可以将图的主题设置为暗色主题。

ggplot(data=mtcars,aes(x=wt,y=mpg))+geom_point(aes(color=am))+stat_smooth()+theme_dark()

2.分布的特征

分布特征分别用ggplot2包绘制为直方图和折线图

ggplot(anorexia,aes(x=wt.change,y=..density..))+geom_histogram(binwidth = 2,fill="skyblue",color="black")+labs(x="Weight change(lbs)")+stat_density(geom="line",linetype="dashed",size=1)

ggplot(anorexia,aes(x=wt.change,color=Treat,linetype=Treat))+labs(x="Weight change(lbs)")+stat_density(geom="line",size=1)


**箱形图:**使用geom_boxplot()绘制。
**ggpubr包:**提供了在平行箱型图上添加组件比较的统计学差异功能。

ggplot(anorexia,aes(x=Treat,y=wt.change),fill=Treat)+geom_boxplot()+theme_bw()
library(ggpubr)
mycomparisons<-list(c("CBT","Cont"), c("CBT", "FT"), c("Cont", "FT"))
ggplot(anorexia,aes(x=Treat,y=wt.change),fill=Treat)+geom_boxplot()+stat_compare_means(comparisons=mycomparisons,method="t.test",color="blue")+theme_bw()


小提琴图

# position:字符串形式的位置参数,确定位置(也可以是返回位置参数的函数)
ggplot(anorexia,aes(x=Treat,y=wt.change),fill=Treat)+geom_violin()+geom_point(position=position_jitter(0.1),alpha=0.5)+theme_bw()

3.比例的构成

比例叠加到条形图如下:

#scale_fill_brewer()一般用于箱线图和条形图等需要填充的图
#1.计数
ggplot(Arthritis,aes(x=Treatment,fill=Improved))+geom_bar(color="red")+scale_fill_brewer()+theme_bw()
#2.比例
ggplot(Arthritis,aes(x=Treatment,fill=Improved))+geom_bar(color="red",position = "fill")+scale_fill_brewer()+theme_bw()


还可以将条形图并排放置

ggplot(Arthritis,aes(x=Treatment,fill=Improved))+geom_bar(color="red",position = "dodge")+scale_fill_brewer()+theme_bw()

4.ggsave()保存图形

p<-ggplot(Arthritis,aes(x=Treatment,fill=Improved))+geom_bar(color="red",position = "dodge")+scale_fill_brewer()+theme_bw()
ggsave("myplot.png",p)
ggsave("myplot.tiff", width = 15, height = 12, units = "cm", dpi = 500)

三、其他图形

1.金字塔图

金字塔图:使用pyramid()绘制,是背靠背式的条形图

library(epiDisplay)
data(Oswego)
pyramid(Oswego$age,Oswego$sex,col.gender = c(2,4),bar.label = TRUE)

2.横向堆栈条形图

library(sjPlot)
data(efc)
view_df(efc) #查看数据集信息

library(dplyr)
qdata<-dplyr::select(efc,c82cop1:c90cop9)
plot_stackfrq(qdata)

3.热图

> data(mtcars)
> dat<-scale(mtcars)#进行数据的中心化和标准化
> class(dat)
[1] "matrix" "array"
> heatmap(dat)

4.三维散点图

三维散点图:使用scatterplot3d()绘制。其中参数type用于绘制图的类型,默认为"p"(点),这里设为"h"(垂直线段)。参数angle为x轴和y轴的角度。

library(scatterplot3d)
data(trees)
scatterplot3d(trees,type="h",highlight.3d = T,angle=55,pch=16)


如果想动态调整3D图形,可以使用plot3d()绘制。

library(rgl)
plot3d(trees)

5.词云图

> library(wordcloud2)
> head(demoFreqC)V2   V1
1     数据 2304
3     统计 1413
4     用户  855
5     模型  846
7     分析  773
8 数据分析  750
> wordcloud2(demoFreqC)


wordcloud2主要输入的是词频统计表。


总结

提示:这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了R语言绘制各种基本图形的用法。

R语言医学数据分析实战(三)数据可视化相关推荐

  1. 【R语言与数据分析实战】数据操作(一):基于向量的处理与外部数据处理

    目录 1.R中的常用数据集 2.读写CSV文件 (1) 读写CSV文件 (2) 读写对象文件 3.合并数据框的行与列 4.apply系数函数 (1) apply (2) lapply (3) sapp ...

  2. R语言医学数据分析实战(二)数据框的操作

    文章目录 一.用基本包处理数据框 1)查看数据框里的内容 2)选取数据框的子集 3)将数据框按照某个变量的值排序 4)查看和删除重复数据 5)在数据框中添加和删除变量 6)把数据框添加到搜索路径 二. ...

  3. 看书标记【R语言 商务数据分析实战6】

    看书标记--关于R语言 chapter 6 6.2 任务实 [R语言 商务数据分析实战6] chapter 6 P2P信用贷款风险控制(用户逾期还款概率模型) 关于数据库的应用+数据清洗+实时数据识别 ...

  4. 【R语言与数据分析实战】R软件编程

    目录 1.流程控制 (1) if语句 (2) 循环语句 2.运算 (1) 数值运算 (2) 向量运算 (3) NA处理 3.定义函数 (1) 可变长函数 (2) 嵌套函数 4.作用域 5.对象的不变性 ...

  5. 【R语言与数据分析实战】绘图

    目录 1.散点图 2.图像选项 2.1 坐标轴名称 2.2 图形标题 2.3 点的类型 2.4 点的大小 2.5 颜色 2.6 坐标轴的取值范围 2.7 图像类型 2.8 线型 2.9 图形排列 2. ...

  6. 看书标记【R语言 商务数据分析实战4】

    看书标记--关于R语言 chapter 4 4.2 任务实现 [R语言 商务数据分析实战4] chapter 4 财政收入预测分析 从海量数据中发现隐藏的运行模式,并提供具有决策意义的信息.变量过多会 ...

  7. 看书标记【R语言 商务数据分析实战5】

    看书标记--关于R语言 chapter 5 5.2 任务实现 [R语言 商务数据分析实战5] chapter 5 金融服务机构资金流量预测 数据理解和预处理>>检验平稳性+纯随机性> ...

  8. 看书标记【R语言 商务数据分析实战9】

    看书标记--关于R语言 chapter 9 9.2 任务实现 [R语言 商务数据分析实战9] chapter 9 餐饮企业综合分析 统计分析>>ARIMA预测销售额>>协同过滤 ...

  9. R语言绘图:实用脑科学数据可视化包

    文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注 导读 本文整理了R语言绘图中使用频率较高的程序包,每个程序包都附载相应的参考来源链接(链接里有实现绘图的脚本)和下载链接.另:茗创科技为大家 ...

最新文章

  1. php图片转字符程序,PHP文字转图片功能原理与实现方法分析
  2. ifconfig 安装_第一章Linux服务器环境搭建之JDK安装
  3. redis php ismember,Spring StringRedisTemplate 配置
  4. 十年只为一个摧残的梦(转载)
  5. 操作系统--内核级线程实现
  6. cs224 -Lecture 1:Introduction and Word Vectors
  7. bootstrap设计登录页面_前端小白如何在10分钟内打造一个爆款Web响应式登录界面?...
  8. shell_script_查询主机名、ip地址 、DNS地址
  9. Ubuntu14.04环境编译vlc源码for安卓Android系统
  10. Java 常见面试题
  11. 风变编程python网址_风变编程《Python基础语法+爬虫精进》
  12. Exception:No serializer found for class and no properties discovered to create BeanSerializer
  13. todo已完成任务_我已经完成了自己该做的任务用英文怎么
  14. 微信开发者工具编译失败显示找不到icons中的图片
  15. 抖音究竟是通过什么让我男朋友他爸成功刷到了我妈?,历经30天
  16. Visual Studio Code (echarts)数据可视化,设置数据缩放区间为20到40,设置标题字体大小,颜色以及是否加粗,设置柱状图颜色
  17. Unity3d之骨骼动画
  18. 英语单词:flight; fly
  19. C++求1000以内水仙花数
  20. Canal adapter1.1.5安装部署配置(3)

热门文章

  1. Java 打印日历等五个经典程序题
  2. 萌萌哒的八戒buuctf
  3. 2021实施工程师面试题(14题带答案)
  4. python 四维数据怎么看性别_四维单子数据看男女
  5. SNAT与DNAT原理与应用
  6. 竞品分析:五层分析法
  7. android 使用jks文件为apk签名
  8. AHP层次分析法matlab实现
  9. 基于ZooKeeper的服务注册实现
  10. EMQ-X 消息存储到数据库的四种方法