Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >社交网络分析的 R 基础:(六)绘图操作

社交网络分析的 R 基础:(六)绘图操作

作者头像
张高兴
发布于 2022-05-09 07:10:18
发布于 2022-05-09 07:10:18
1K00
代码可运行
举报
文章被收录于专栏:张高兴的博客张高兴的博客
运行总次数:0
代码可运行

R 语言强大的可视化功能在科学研究中非常受欢迎,丰富的类库使得 R 语言可以绘制各种各样的图表。当然这些与本章内容毫无关系😅,因为笔者对绘制图表了解有限,仅限于能用的程度。接下来的内容无需额外安装任何包,仅使用 R 语言自带的绘图工具完成柱状图与折线图的绘制。如果对绘制的图表定制性要求较高,请搜索 ggplot2 包的相关教程。

  • 柱状图
  • 折线图
  • 保存绘制的图表

柱状图

R 语言中使用 barplot() 函数来创建柱状图,下面绘制一个最简单的柱状图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> data1 <- c(0.7795875, 0.8686484, 0.8901365, 0.905844, 0.9201746, 0.9227028)
> barplot(data1)

为了使图表的可读性更高,还需要添加标题、x 与 y 轴的副标题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> xArgs <- c("1%", "2%", "3%", "4%", "5%", "6%")
> barplot(data1, main = "Plot Title", names.arg = xArgs, xlab = "X-axis Subtitle", ylab = "Y-axis Subtitle")

现在需要为现有的柱状图添加一组对比数据,并且灰色有些单调,还需要为柱状图添加一些鲜艳的颜色:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> data2 <- c(0.7921935, 0.8775983, 0.8999872, 0.9109487, 0.9250147, 0.9274716)  # 第二组数据
> colors <- rainbow(2, 0.6, 0.9)  # 生成2个彩虹中的颜色并设置一下饱和度
> barplot(rbind(data1, data2), main = "Plot Title", names.arg = xArgs, xlab = "X-axis Subtitle", ylab = "Y-axis Subtitle", beside = TRUE, col = colors)

现在的柱状图变得稍微美观了一些,但两组数据的对比似乎还缺少图例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> legends <- c("Data1", "Data2")
> b <- barplot(rbind(data1, data2), main = "Plot Title", names.arg = xArgs, xlab = "X-axis Subtitle", ylab = "Y-axis Subtitle", beside = TRUE, col = colors)
> legend("bottom", legend = legends, fill = colors, horiz = TRUE, bg = "white")  # 图例

这个柱状图仍然有些不太满意,需要限制一下 y 轴的范围在 [0.75, 1],还要为柱状图添加数字显示,如果能加上网格就更好了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> b <- barplot(rbind(data1, data2), main = "Plot Title", names.arg = xArgs, xlab = "X-axis Subtitle", ylab = "Y-axis Subtitle", beside = TRUE, col = colors, ylim = c(0.75, 1), xpd = FALSE)
> legend("bottom", legend = legends, fill = colors, horiz = TRUE, bg = "white")  # 图例
> text(b, y = rbind(data1, data2) + 0.01, labels = as.character(round(rbind(data1, data2), 3)), cex = 0.75)  # 柱状图文字描述
> grid(nx = 0, ny = 5, col = "lightgray")  # 网格

“你是来找茬的吧!”,将柱状图改成虚线填充:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> angles <- c(60, 120)  # 虚线填充的角度
> b <- barplot(rbind(data1, data2), main = "Plot Title", names.arg = xArgs, xlab = "X-axis Subtitle", ylab = "Y-axis Subtitle", beside = TRUE, col = colors, ylim = c(0.75, 1), xpd = FALSE, angle = angles, density = 15)
> # 上文出现过的代码此处省略...

这样一个不能说是最好看的,但一定是一个功能最全的柱状图就完成了,请根据需求自由组合柱状图的外观。

折线图

此处折线图就不像柱状图一样一步步画了,图表的外观是通用的,柱状图中提到的外观都可以直接拿来给折线图用。下面绘制一个两条线的折线图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> data1 <- c(0.8457699, 0.9294758, 0.9550087, 0.9640443, 0.969838, 0.9750423)
> data2 <- c(0.7892351, 0.8938469, 0.9202865, 0.9603516, 0.9590848, 0.9745516)  # 两组数据
> xArgs <- c("1%", "2%", "3%", "4%", "5%", "6%")  # x 轴
> legends <- c("Data1", "Data2")  # 图例
> colors <- rainbow(2, 0.6, 0.9)  # 颜色
> ltys <- c(1, 2)  # 线条类型
> pchs <- c(12, 13)  # 点的符号
> plot(data1, main = "Plot Title", xlab = "X-axis Subtitle", ylab = "Y-axis Subtitle", 
col = colors[1], lty = ltys[1], pch = pchs[1], cex = 1.2, lwd = 2, type = "o", ylim = c(0.75, 1), xaxt = "n")
> axis(1, at = 1:6, labels = xArgs)  # x 轴
> lines(data2, type="b", cex = 1.2, lwd = 2, lty = ltys[2], col = colors[2], pch = pchs[2])  # 添加第二条线
> legend("bottomright", legend = legends, col =  colors, pch = pchs, horiz = FALSE)  # 图例

线条类型和点的符号见下图:

下面绘制一个双 y 轴的折线图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> data1 <- c(1, 0.93, 0.87, 0.82, 0.87, 0.98)
> data2 <- c(14.3736, 14.5011, 12.9268, 11.4347, 10.0557, 8.6953)
> xArgs <- c("1%", "2%", "3%", "4%", "5%", "6%")
> par(mar = c(5, 5, 4, 5))  # 设置图表的外边距,以便有足够的空间显示副标题
> plot(data1, main = "Plot Title", xlab = "X-axis Subtitle", ylab = "Y1-axis Subtitle", type = "o", col = "blue", pch = 15, axes = FALSE)  # 绘制第一条线
> axis(side = 2)  # 绘制第一条 y 轴
> axis(1, at = 1:6, labels = xArgs, cex.axis = 0.9)  # 绘制 x 轴
> par(new = TRUE)
> plot(data2, type = "o", xaxt = "n", yaxt = "n", ylab = "", xlab = "", col = "red", lty = 2, pch = 16, axes = FALSE)  # 绘制第二条线
> axis(side = 4)
> mtext("Y2-axis Subtitle", side = 4, line = 3)  # 绘制第二条 y 轴
> box()  # 将图表封闭

保存绘制的图表

保存为 pdf 文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pdf(file = "plot.pdf")
plot()  # 此处绘图
dev.off()

保存为 png 文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
png(file = "plot.png")
plot()  # 此处绘图
dev.off()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Day4-香波🐟
还是先总结一下今天吧,早上一起来发现自己流感中招了,但是还是硬着头皮去了6周没去过的手术室,去做了台jj增粗延长加包皮环切术,因为我是个不合格的一助,硬是做了5个小时才下台,把我老板坑惨了,真是怀疑啥事我去做都会变得不幸。。不过还是学到了很多东西,算是唯一值得开心的事。回来睡了一觉然后就去开会,去吃了个饭回来19:17正式开始今天的学习~7天已经过半!继续加油哇!
波小囡
2023/11/30
1750
R语言中的绘图神器plotrix
大家在绘制科研图形的时候总会遇到各种想完美展示但是有各种受限的局面。最后都不得不去妥协,退而求其次。今天就来给大家介绍个神器,为各位去除后顾之忧。首先看下包的安装:
一粒沙
2022/03/14
2.3K0
R语言中的绘图神器plotrix
12个最常用的matplotlib图例 !!
折线图(Line Plot):用于显示数据随时间或其他连续变量的变化趋势。在实际项目中,可以用于可视化模型性能随着训练迭代次数的变化。
JOYCE_Leo16
2024/03/19
5690
12个最常用的matplotlib图例 !!
R- 组合图(折线+条形图)绘制
就是下面这张图,在途中用条形图展示了不同季节样本浮游动物的组成情况,同时使用带误差棒的折线图来表示浮游动物生物量的变化,相当于在一幅图中同时展示了群落的相对丰度和绝对丰度。
DataCharm
2021/02/22
3.4K0
R- 组合图(折线+条形图)绘制
python数据分析——数据可视化(图形绘制基础)
数据可视化是指利用图形、表格、图表等方式将数据展示出来,使得数据更加清晰、易于理解和分析。图形绘制是数据可视化的基础,通过绘制各种图形呈现数据,可以更加直观地了解数据之间的关系和趋势。
鲜于言悠
2024/03/20
8660
python数据分析——数据可视化(图形绘制基础)
R in action读书笔记(15)第十一章 中级绘图 之二 折线图 相关图 马赛克图
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference (mm)",main="orange tree 1growth")
统计学家
2019/04/10
6750
R in action读书笔记(15)第十一章 中级绘图 之二 折线图 相关图 马赛克图
有这5小段代码在手,轻松实现数据可视化(Python+Matplotlib)
大数据文摘作品 编译:傅一洋、吴双、龙牧雪 本文要讲的是Matplotlib,一个强大的Python可视化库。一共5小段代码,轻松实现散点图、折线图、直方图、柱状图、箱线图,每段代码只有10行,也是再简单不过了吧! 数据可视化是数据科学家工作的一项主要任务。在项目早期阶段,通常会进行探索性数据分析(EDA)以获取对数据的理解和洞察,尤其对于大型高维的数据集,数据可视化着实有助于使数据关系更清晰易懂。 同时在项目结束时,以清晰、简洁和引人注目的方式展示最终结果也是非常重要的,因为受众往往是非技术性客户,只有这
大数据文摘
2018/05/23
1.4K0
R语言进阶之坐标轴和文本
使用函数title()可以在图中添加标题,这里包括主标题、副标题、x轴标题和y轴标题,具体如下:
生信与临床
2020/08/05
4.2K0
R语言读写json 散点图 饼图 柱状图
读写文件 getwd() # 获取当前路径 setwd() # 设置当前路径 读写csv data <- read.csv('input.csv') print(data) print(is.data.frame(data)) print(ncol(data)) print(nrow(data)) print(max(data$score)) person = subset(data,score == min(score)) print(person) write.csv(person,"output.cs
AI拉呱
2021/01/14
7550
Python绘制图表
Python提供了多种可视化库,常用的有matplotlib、seaborn和plotly等。这些库可以用于绘制各种类型的图表,如折线图、散点图、柱状图、饼图等。
风中的云彩
2024/12/25
1000
R语言入门之折线图
在R语言中可以使用基本绘图函数lines(x, y, type=)来绘制线条,这里参数x和y分别是数值型向量,代表着横坐标和纵坐标的数据,参数type=主要是用来控制线条的类型。
生信与临床
2020/08/06
2.1K0
R语言入门之折线图
R语言︱画图
point加点;axis右边坐标轴,mtext右边坐标轴的名称,text给出本文。
悟乙己
2019/05/26
1.3K0
数据可视化的魔法:Matplotlib的基本用法
如果不能将数据可视化, 那么拥有的数据除了占用存储将毫无用处。所以将数据分析起来才能大放光彩, 也是海量数据存在的意义。python中有很多将数据可视化的模块, matplotlib是最基本的一个, 也是功能非常强大的绘图库,支持绘制各种类型的统计图表。以下是几种常见的统计图表,以及绘制方法及用例
不止于python
2023/09/18
2700
数据可视化的魔法:Matplotlib的基本用法
24式R入门作图必学之barplot条形图(一)
柱状图又称条形图,在统计分析中的使用频率最高,也是众多小白入门R最早绘制的可视化图形。
生信初学者
2023/03/02
3.4K0
24式R入门作图必学之barplot条形图(一)
R语言基础绘图教程——第5章:直方图和柱状图
R基础教程可先阅读:R语言编程基础第一篇:语法基础 1 barplot()函数绘制 数据: Group Count1 Count2 Control 10 8 Drug1 28 13 Drug2 23 14 Drug3 9 18 Drug4 15 6 #读入数据 data = read.table("barplot.txt",header=T) #绘制条形图,仔细喊下面没一行代码都生成一个图,看他们的差别会知道参数是干嘛的。 barplot(data[,2]) barplot(data[,2],nam
DoubleHelix
2019/08/15
6.1K0
R语言基础绘图教程——第5章:直方图和柱状图
R语言_基本图形
attach(mtcars) names(mtcars) # "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb" #条形图 #单向量条形图 barplot(table(cyl), main="main",xlab="x",ylab="y") barplot(table(cyl),horiz = TRUE) plot(as.factor(cyl)) plot(factor(cyl,level
用户1147754
2019/05/26
6520
全网最全的R语言基础图形合集
直方图是一种对数据分布情况进行可视化的图形,它是二维统计图表,对应两个坐标分别是统计样本以及该样本对应的某个属性如频率等度量。
生信学习者
2024/06/12
960
全网最全的R语言基础图形合集
一文解决基本科研绘图需求(可视化神器ggstatsplot)(1)(概述)
ggstatsplot是ggplot2包的扩展,主要用于创建美观的图片同时自动输出统计学分析结果,其统计学分析结果包含统计分析的详细信息,该包对于经常需要做统计分析的科研工作者来说非常有用。
用户1359560
2019/06/24
6.2K1
一文解决基本科研绘图需求(可视化神器ggstatsplot)(1)(概述)
5个快速而简单的数据可视化方法和Python代码
数据可视化是数据科学家工作的重要组成部分。在项目的早期阶段,你通常会进行探索性数据分析(EDA),以获得对数据的一些见解。创建可视化确实有助于使事情更清晰和更容易理解,特别是对于更大的、高维的数据集。在项目接近尾声时,以一种清晰、简洁和引人注目的方式展示最终结果是非常重要的,这样你的受众(通常是非技术客户)就更加容易理解。
AI算法与图像处理
2019/05/22
2.2K0
【数据可视化包Matplotlib】Matplotlib基本绘图方法
根据 Matplotlib 图像的4层图像结构,pyplot 模块绘制图形基本都遵循一个流程,使用这个流程可以完成大部分图形的绘制。pyplot 模块基本绘图流程主要分为3个部分,如下图所示。
Francek Chen
2025/01/22
2180
【数据可视化包Matplotlib】Matplotlib基本绘图方法
相关推荐
Day4-香波🐟
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验