R语言医学数据分析实战(三)数据可视化
文章目录
- 一、用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语言医学数据分析实战(三)数据可视化相关推荐
- 【R语言与数据分析实战】数据操作(一):基于向量的处理与外部数据处理
目录 1.R中的常用数据集 2.读写CSV文件 (1) 读写CSV文件 (2) 读写对象文件 3.合并数据框的行与列 4.apply系数函数 (1) apply (2) lapply (3) sapp ...
- R语言医学数据分析实战(二)数据框的操作
文章目录 一.用基本包处理数据框 1)查看数据框里的内容 2)选取数据框的子集 3)将数据框按照某个变量的值排序 4)查看和删除重复数据 5)在数据框中添加和删除变量 6)把数据框添加到搜索路径 二. ...
- 看书标记【R语言 商务数据分析实战6】
看书标记--关于R语言 chapter 6 6.2 任务实 [R语言 商务数据分析实战6] chapter 6 P2P信用贷款风险控制(用户逾期还款概率模型) 关于数据库的应用+数据清洗+实时数据识别 ...
- 【R语言与数据分析实战】R软件编程
目录 1.流程控制 (1) if语句 (2) 循环语句 2.运算 (1) 数值运算 (2) 向量运算 (3) NA处理 3.定义函数 (1) 可变长函数 (2) 嵌套函数 4.作用域 5.对象的不变性 ...
- 【R语言与数据分析实战】绘图
目录 1.散点图 2.图像选项 2.1 坐标轴名称 2.2 图形标题 2.3 点的类型 2.4 点的大小 2.5 颜色 2.6 坐标轴的取值范围 2.7 图像类型 2.8 线型 2.9 图形排列 2. ...
- 看书标记【R语言 商务数据分析实战4】
看书标记--关于R语言 chapter 4 4.2 任务实现 [R语言 商务数据分析实战4] chapter 4 财政收入预测分析 从海量数据中发现隐藏的运行模式,并提供具有决策意义的信息.变量过多会 ...
- 看书标记【R语言 商务数据分析实战5】
看书标记--关于R语言 chapter 5 5.2 任务实现 [R语言 商务数据分析实战5] chapter 5 金融服务机构资金流量预测 数据理解和预处理>>检验平稳性+纯随机性> ...
- 看书标记【R语言 商务数据分析实战9】
看书标记--关于R语言 chapter 9 9.2 任务实现 [R语言 商务数据分析实战9] chapter 9 餐饮企业综合分析 统计分析>>ARIMA预测销售额>>协同过滤 ...
- R语言绘图:实用脑科学数据可视化包
文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注 导读 本文整理了R语言绘图中使用频率较高的程序包,每个程序包都附载相应的参考来源链接(链接里有实现绘图的脚本)和下载链接.另:茗创科技为大家 ...
最新文章
- php图片转字符程序,PHP文字转图片功能原理与实现方法分析
- ifconfig 安装_第一章Linux服务器环境搭建之JDK安装
- redis php ismember,Spring StringRedisTemplate 配置
- 十年只为一个摧残的梦(转载)
- 操作系统--内核级线程实现
- cs224 -Lecture 1:Introduction and Word Vectors
- bootstrap设计登录页面_前端小白如何在10分钟内打造一个爆款Web响应式登录界面?...
- shell_script_查询主机名、ip地址 、DNS地址
- Ubuntu14.04环境编译vlc源码for安卓Android系统
- Java 常见面试题
- 风变编程python网址_风变编程《Python基础语法+爬虫精进》
- Exception:No serializer found for class and no properties discovered to create BeanSerializer
- todo已完成任务_我已经完成了自己该做的任务用英文怎么
- 微信开发者工具编译失败显示找不到icons中的图片
- 抖音究竟是通过什么让我男朋友他爸成功刷到了我妈?,历经30天
- Visual Studio Code (echarts)数据可视化,设置数据缩放区间为20到40,设置标题字体大小,颜色以及是否加粗,设置柱状图颜色
- Unity3d之骨骼动画
- 英语单词:flight; fly
- C++求1000以内水仙花数
- Canal adapter1.1.5安装部署配置(3)