问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图

创作时间:
作者:
@小白创作中心

R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图

引用
1
来源
1.
https://www.cnblogs.com/fkxxgis/p/18315885

本文将介绍如何使用R语言中的readxl和ggplot2包来读取Excel表格文件数据,并绘制具有多个系列的柱状图和条形图。通过本文的学习,读者将掌握数据读取、数据转换以及绘图的具体步骤和代码示例。

1. 安装所需包

首先,我们需要安装readxl和ggplot2这两个包。其中,readxl包用于读取Excel表格文件数据,ggplot2包用于绘制柱状图。此外,我们还需要安装reshape2包,用于数据的长宽转换。

install.packages("readxl")
install.packages("ggplot2")
install.packages("reshape2")

2. 导入所需包

安装完成后,我们需要将这些包导入到当前的工作环境中。

library(readxl)
library(ggplot2)
library(reshape2)

3. 读取Excel数据

使用readxl包中的read_excel()函数来读取Excel表格文件数据。函数的第一个参数是文件路径,第二个参数是Sheet编号。

xlsx_file <- read_excel(r"(E:\02_Project\01_Chlorophyll\ClimateZone\Split\Result\Result.xlsx)", sheet = 2)

读入后的数据是一个tibble类别的变量,我们可以将其视作Data Frame格式数据进行后续处理。如果使用RStudio软件,可以通过双击变量来更直观地查看数据。

4. 数据转换

在数据分析和可视化中,我们往往需要将宽数据转换为长数据。这里使用reshape2包中的melt()函数来实现转换。

xlsx_data <- melt(xlsx_file, id.var = "...1")

通过指定variable.name和value.name参数,我们可以自定义转换后数据的列名。

xlsx_data <- melt(xlsx_file, id.var = "...1", variable.name = "Factor", value.name = "q")

5. 绘制柱状图

使用ggplot2包中的ggplot()函数来绘制柱状图。通过设置fill参数可以实现多系列的区分,position参数设置为"dodge"可以使不同系列的柱子平行放置。

ggplot(data = xlsx_data, mapping = aes(x = Factor, y = q, fill = ...1)) + geom_bar(stat = "identity", position = "dodge")

如果希望柱状图是横向的,可以添加coord_flip()函数。

ggplot(data = xlsx_data, mapping = aes(x = Factor, y = q, fill = ...1)) + geom_bar(stat = "identity", position = "dodge") + coord_flip()

至此,我们就完成了基于Excel表格数据的多系列柱状图绘制。关于ggplot()函数的更多高级用法,可以参考其官方帮助文档。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号