楼主: 天涯印象
4164 4

[问答] R语言中多列数据制图,多维数据转换 [推广有奖]

  • 0关注
  • 0粉丝

已卖:48份资源

硕士生

4%

还不是VIP/贵宾

-

威望
0
论坛币
53 个
通用积分
0.0600
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3305 点
帖子
58
精华
0
在线时间
142 小时
注册时间
2016-4-17
最后登录
2024-3-14

楼主
天涯印象 学生认证  发表于 2017-4-16 11:58:55 |AI写论文
10论坛币
例子.xls (34.5 KB)
数据如上
QQ截图20170416115049.jpg
原始数据如上图,有很多,就是这个形式的,我想用ggplot2绘图,必须变成下面的形式,如何数据转换呢?或者ggplot2能不能直接对数据进行转换?
QQ截图20170416115110.jpg
library(ggplot2)
plotdata <-read.csv(file = "sample.csv", header = TRUE)
ggplot(plotdata, aes(wavelength, ref, col=type))+
  geom_line()

Rplot.jpeg
图如上,有没有什么更好的方法呢?求教啊

最佳答案

关键词:数据转换 R语言 ggplot2 Library gplot

沙发
stzhao 在职认证  发表于 2017-4-16 11:58:56
  1. library(tidyr)
  2. library(ggplot2)
  3. mydata <- read.csv("plotdata_wide.csv")
  4. mydata %>%
  5.         gather(key = type, value = ref, 2:5) %>%
  6.         ggplot(aes(wavelength, ref, col = type)) + geom_line()
复制代码

藤椅
dengqiang7 学生认证  发表于 2017-4-16 12:20:20
可以使用R中的melt函数对数据进行转置
  1. new_data <- melt(data = old_data, id.vars = "波长")
复制代码

板凳
天涯印象 学生认证  发表于 2017-4-16 14:58:55
stzhao 发表于 2017-4-16 11:58
请问一下这个转置后的结果能不能生成一个新的数据框啊?我想利用一下这个转置后的结果

报纸
stzhao 在职认证  发表于 2017-4-16 15:43:42
天涯印象 发表于 2017-4-16 14:58
请问一下这个转置后的结果能不能生成一个新的数据框啊?我想利用一下这个转置后的结果
把reshape后的结果另存就行 newdata <-  gather(mydata, key = type, value = ref, 2:5)

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-21 12:46