R语言可视化---介绍一些强大的画图和数据处理包及函数(ggplot,melt())
来源:互联网 发布:资金趋势指标公式源码 编辑:程序博客网 时间:2024/05/21 07:06
最近实习中需要R语言做分析,对于最后的结果需要用如下所示的图进行展示(示例图片在论文中截取)
由于接触R语言不久,刚开始就是各种懵,认为直接用R是画不出这样的图片的,然后问了同学说用R语言的ggplot2扩展包,于是在网上找了一些教程发现这种图是可以画,但是其输入数据的形式跟我已有数据的形式有很大区别,楼主的数据是如下图形式的(只是一个例子说明,非原数据)
楼主的数据中行和列的标题分别是在实验的两个阶段用的不同的model, 其中对应的值是使用其对应行列的model组合后得到的实验结果值。而网上的教程多是标准的数据集合,如一些属性及其对应值。这样的教程推荐http://www.thebigdata.cn/JiShuBoKe/14326.html点击打开链接。搜索多个教程没有找到针对我的这种数据的解决方案,只好做了一件很愚蠢的事,将我的数据铺开再合并成所需的数据,倒是也画出了想要的结果,然而却十分麻烦,随后又找了一位熟悉R的同学咨询,人家一句代码就解决了我一大堆展开合并的工作,就是用的melt函数,代码如下
plotData <- read.csv(file="~/Desktop/A2fscore.csv")head(plotData)class(plotData)library(reshape2)library(ggplot2)plotData <- melt(plotData,id.vars = 1)p <- ggplot(data=plotData,aes(x=variable,y = value,fill=X))+geom_bar(stat="identity",position='dodge')+ggtitle("Fscores for A2Benchmark")+mycolour_3p着重介绍一下这里的melt()函数,函数在reshape2包中。我们这里需要melt的是数据框,在R的帮助文档中查找的解释是
Melt a data frame into form suitable for easy casting 将数据框融(拆解,分解)成适合转换的形式(就是我之前做的一堆愚蠢的工作)
感觉Help语言中帮助文档说的还是挺抽象的。根据我在网上查找的资料可以简单地理解为根据待melt数据的各维度名称进行排列组合将对应的值线性化,如一个2*2的矩阵,经过melt之后效果如下
对于dataframe的melt()稍微复杂一些
其中id.vars参数原dataframe中哪个变量将作为标识符,每个标识符变量占一列,与之对应的参数是measured.vars ,不指定的情况下,除了被指定为id.vars之外的都是变量都是观测值,观测变量的名称和值分别占一列,表示为结果中的variable和value变量。
经过melt的数据即可以调用ggplot进行画图,其中用于将不同类别分开的函数是position =’dodge‘
总体还是觉得使用数据框的melt有点绕,后来思考一下对于我的数据可以直接利用as.matrix()将数据转化为矩阵,然后进行矩阵的melt,这样比较好理解。而我这里按dataframe处理其实是因为我写数据的时候出了点小问题,将数据写入csv时,添加了列名,导致读进来的数据,列名也成为measured 的一部分,弄巧成拙,反而用数据框处理比较便利。
差不多整理到这里,写下来比较不容易忘,希望也对大家有点帮助~
- R语言可视化---介绍一些强大的画图和数据处理包及函数(ggplot,melt())
- 【R语言 数据处理】R语言数据变形melt用法
- R语言 画图函数的参数 介绍
- R 画图之ggplot(1)
- R语言关联规则可视化:扩展包arulesViz的介绍
- R-ggplot 数据可视化
- R语言利用ggplot画图时调整坐标轴字体大小
- 二十三、R语言强大工具包ggplot绘图以外的那些事
- R语言的多维可视化方法(ggplot二维图表现多维)
- R语言基础和画图方法介绍
- 【R语言学习笔记】探索ggplot的排列组合(一)
- R语言应用-ggplot和线性回归
- 【数据处理】R语言--data.table -dcast and melt(数据拆分and合并)
- R语言ggplot包之数据分布汇总
- R语言-数据处理包 dplyr
- R语言-数据处理包 dplyr
- R语言:我写的一个数据可视化的函数,散点图和线性回归趋势线及公式
- R语言常用包及介绍
- 关于建立本地web服务器的几种方法
- JS中String的高级操作
- C语言构建WEB管理系统(一):了解http协议
- 《小怨念》
- IO的五种模型(关于同步与异步,阻塞与非阻塞)
- R语言可视化---介绍一些强大的画图和数据处理包及函数(ggplot,melt())
- [图像处理]边缘提取以及Harris角点检测
- Python琐碎知识总结
- android 4.3之后使用ccache提供编译速度
- 常用 Git 命令清单
- OI省选算法汇总
- PHp服务器环境搭建
- poj 3468 A Simple Problem with Integers(线段树 插线问线)
- JAVA jacob office转换pdf代码