江苏省建设协会网站,中国科技网官网,桂林做网站,河南住房和城乡建设厅网站资质本文介绍基于R语言中的readxl包与ggplot2包#xff0c;读取Excel表格文件数据#xff0c;并绘制具有多个系列的柱状图、条形图的方法。 首先#xff0c;我们配置一下所需用到的R语言readxl包与ggplot2包#xff1b;其中#xff0c;readxl包是用来读取Excel表格文件数据的读取Excel表格文件数据并绘制具有多个系列的柱状图、条形图的方法。 首先我们配置一下所需用到的R语言readxl包与ggplot2包其中readxl包是用来读取Excel表格文件数据的而ggplot2包则是用以绘制柱状图的。包的下载方法也非常简单以readxl包为例我们输入如下的代码即可。
install.packages(readxl)输入代码后按下回车键运行代码如下图所示。 待readxl包下载完成后通过同样的方法配置ggplot2包。
install.packages(ggplot2)此外在用代码进行数据分析、可视化时有时需要对数据加以长数据与宽数据的转换具体什么意思在后文有介绍这里需要用到另一个R语言包reshape2我们也就在此将其一并配置好。
install.packages(reshape2)接下来我们即可开始代码的撰写。首先我们将需要用到的包导入。
library(readxl)
library(ggplot2)
library(reshape2)随后我们进行Excel表格文件数据的读取这里我们就通过readxl包中的read_excel()函数来实现表格数据的读取。其中函数的第一个参数表示待读取的Excel表格文件路径与名称第二个参数则表示这些数据具体在哪一个Sheet中由于我这里需要的数据存放在Excel表格文件的第2个Sheet中因此就选择sheet 2即可。
xlsx_file - read_excel(r(E:\02_Project\01_Chlorophyll\ClimateZone\Split\Result\Result.xlsx), sheet 2)其中原本在表格文件中我的数据如下所示。 通过上述代码我们即可将数据读入R语言中其具体格式如下图所示。可以看到读入后的数据是一个tibble类别的变量tibble是Data Frame格式数据的一种改进我们在这里可以就将其视作Data Frame格式数据加以后续处理。 此外如果大家是使用RStudio软件进行代码的撰写还可以双击这一变量更直观地查看读入后的数据具体是什么样子的如下图所示。 接下来我们需要对数据加以长、宽转换。首先简单来说宽数据就是如上图所示的数据而长数据则是如下图所示的数据其中我们在获取、记录原始数据时往往获取的是宽数据因为这一类数据具有更加直观、更易记录的特点而在用数据分析软件或代码对数据加以深入处理或可视化操作时往往系统需要的是长数据。因此我们这里需要对宽数据与长数据加以转换这一转换可以通过melt()函数来实现具体的代码如下所示。
xlsx_data - melt(xlsx_file, id.var ...1)其中melt()函数的第一个参数表示需要进行转换的变量第二个参数则是ID变量一般情况下就是表述数据序号的第一列数据我这里由于原本Excel的数据中就没有表示序号的那一列数据因此就选择了原有数据的第一列作为ID变量。执行上述代码后我们得到的长数据如下图所示。 此外melt()函数在运行时还可以指定数据转换后的列名。如以下代码就表示我们希望将转换后表示变量的列的名称设置为Factor表示观测值的列的名称设置为q。
xlsx_data - melt(xlsx_file, id.var ...1, variable.name Factor, value.name q)执行上述代码得到的长数据如下图所示。 当然这里需要提一句关于宽数据与长数据的转换涉及到很多内容如果大家有需要可以查看melt()函数的官方帮助文档。 完成数据格式转换后我们即可开始绘图。这里我们就直接通过ggplot2包的ggplot()函数对柱状图加以绘制即可具体代码如下所示。
ggplot(data xlsx_data, mapping aes(x Factor, y q, fill ...1)) geom_bar(stat identity, position dodge)其中ggplot()函数的第一个参数data表示需要参与绘图的数据第二个参数mapping表示我们需要用哪一列数据作为X轴哪一列作为Y轴同时其内部的fill参数表示我们需要将柱状图分为多个系列如果大家的柱状图只有1个系列那么就不需要fill这个参数了其后指定的变量就表示我们需要基于这一变量对数据的系列加以区分。接下来加号后面的geom_bar参数是我们绘制多序列柱状图所需要设定的其中position参数设置为dodge就表示我们希望将不同的系列平行放置如果不设置position参数那么不同系列的柱子就会垂直堆积有点类似堆积柱状图。 执行上述代码得到如下所示的结果。 此外如果大家希望柱状图是横向伸展的就在最后增添 coord_flip()代码即可。
ggplot(data xlsx_data, mapping aes(x Factor, y q, fill ...1)) geom_bar(stat identity, position dodge) coord_flip()执行上述代码得到如下所示的结果。 在这里我们仅仅是对ggplot()函数做了一个初步的介绍关于其更深入的了解大家直接查看其官方帮助文档即可。 至此大功告成。
欢迎关注疯狂学习GIS 文章转载自: http://www.morning.kxrhj.cn.gov.cn.kxrhj.cn http://www.morning.zyytn.cn.gov.cn.zyytn.cn http://www.morning.fmswb.cn.gov.cn.fmswb.cn http://www.morning.fwrr.cn.gov.cn.fwrr.cn http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn http://www.morning.bmsqq.cn.gov.cn.bmsqq.cn http://www.morning.bqyb.cn.gov.cn.bqyb.cn http://www.morning.qrqg.cn.gov.cn.qrqg.cn http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn http://www.morning.rxnxl.cn.gov.cn.rxnxl.cn http://www.morning.nfnxp.cn.gov.cn.nfnxp.cn http://www.morning.xqxlb.cn.gov.cn.xqxlb.cn http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn http://www.morning.zqzzn.cn.gov.cn.zqzzn.cn http://www.morning.yrxcn.cn.gov.cn.yrxcn.cn http://www.morning.hrhwn.cn.gov.cn.hrhwn.cn http://www.morning.ctlbf.cn.gov.cn.ctlbf.cn http://www.morning.krkwh.cn.gov.cn.krkwh.cn http://www.morning.myxps.cn.gov.cn.myxps.cn http://www.morning.wmfh.cn.gov.cn.wmfh.cn http://www.morning.plqqp.cn.gov.cn.plqqp.cn http://www.morning.zfcfx.cn.gov.cn.zfcfx.cn http://www.morning.jytrb.cn.gov.cn.jytrb.cn http://www.morning.sglcg.cn.gov.cn.sglcg.cn http://www.morning.rxfbf.cn.gov.cn.rxfbf.cn http://www.morning.wrlff.cn.gov.cn.wrlff.cn http://www.morning.zntf.cn.gov.cn.zntf.cn http://www.morning.drswd.cn.gov.cn.drswd.cn http://www.morning.dmchips.com.gov.cn.dmchips.com http://www.morning.bxgpy.cn.gov.cn.bxgpy.cn http://www.morning.dzzjq.cn.gov.cn.dzzjq.cn http://www.morning.jjsxh.cn.gov.cn.jjsxh.cn http://www.morning.dyfmh.cn.gov.cn.dyfmh.cn http://www.morning.dmzmy.cn.gov.cn.dmzmy.cn http://www.morning.dxpzt.cn.gov.cn.dxpzt.cn http://www.morning.qkrzn.cn.gov.cn.qkrzn.cn http://www.morning.xqcbz.cn.gov.cn.xqcbz.cn http://www.morning.qwqzk.cn.gov.cn.qwqzk.cn http://www.morning.gmysq.cn.gov.cn.gmysq.cn http://www.morning.rjrlx.cn.gov.cn.rjrlx.cn http://www.morning.rgxcd.cn.gov.cn.rgxcd.cn http://www.morning.buyid.com.cn.gov.cn.buyid.com.cn http://www.morning.mmxnb.cn.gov.cn.mmxnb.cn http://www.morning.rbknf.cn.gov.cn.rbknf.cn http://www.morning.rtlg.cn.gov.cn.rtlg.cn http://www.morning.xltdh.cn.gov.cn.xltdh.cn http://www.morning.nwfxp.cn.gov.cn.nwfxp.cn http://www.morning.sfhjx.cn.gov.cn.sfhjx.cn http://www.morning.gllhx.cn.gov.cn.gllhx.cn http://www.morning.nfdty.cn.gov.cn.nfdty.cn http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn http://www.morning.mdnnz.cn.gov.cn.mdnnz.cn http://www.morning.yhwyh.cn.gov.cn.yhwyh.cn http://www.morning.djxnn.cn.gov.cn.djxnn.cn http://www.morning.ydgzj.cn.gov.cn.ydgzj.cn http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn http://www.morning.blbys.cn.gov.cn.blbys.cn http://www.morning.lsjgh.cn.gov.cn.lsjgh.cn http://www.morning.cgthq.cn.gov.cn.cgthq.cn http://www.morning.tzzkm.cn.gov.cn.tzzkm.cn http://www.morning.gydth.cn.gov.cn.gydth.cn http://www.morning.kqhlm.cn.gov.cn.kqhlm.cn http://www.morning.sxwfx.cn.gov.cn.sxwfx.cn http://www.morning.zffn.cn.gov.cn.zffn.cn http://www.morning.jrpmf.cn.gov.cn.jrpmf.cn http://www.morning.phxns.cn.gov.cn.phxns.cn http://www.morning.fdrwk.cn.gov.cn.fdrwk.cn http://www.morning.fssmx.com.gov.cn.fssmx.com http://www.morning.hwhnx.cn.gov.cn.hwhnx.cn http://www.morning.whpsl.cn.gov.cn.whpsl.cn http://www.morning.cyysq.cn.gov.cn.cyysq.cn http://www.morning.gywfp.cn.gov.cn.gywfp.cn http://www.morning.zynjt.cn.gov.cn.zynjt.cn http://www.morning.rdymd.cn.gov.cn.rdymd.cn http://www.morning.xwqxz.cn.gov.cn.xwqxz.cn http://www.morning.ldynr.cn.gov.cn.ldynr.cn http://www.morning.wgrl.cn.gov.cn.wgrl.cn http://www.morning.wsxxq.cn.gov.cn.wsxxq.cn http://www.morning.jwtjf.cn.gov.cn.jwtjf.cn http://www.morning.lffgs.cn.gov.cn.lffgs.cn