首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用基于R中多列的值绘制图形

使用基于R中多列的值绘制图形
EN

Stack Overflow用户
提问于 2017-06-21 17:36:32
回答 1查看 207关注 0票数 0

我想为(v2,v3,v5)的相等值的子集在v1和v4之间绘制一个图,在同一图中也是如此。我的数据集如下

代码语言:javascript
复制
v1  v2 v3 v4        v5
 3  10 20  1 0.5000000
 1  10 20  2 0.5000000
 2  10 30  1 0.3333333
 1  10 30  2 0.3333333
 1  10 40  1 0.2500000
 1  10 45  1 0.2222222
 1  10 45  1 0.2222222

group_by给出了与上面相同的矩阵。

例如:绘制这些值的一张图

代码语言:javascript
复制
v1  v2 v3 v4        v5
 3  10 20  1 0.5000000
 1  10 20  2 0.5000000
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 18:00:27

不是很漂亮的代码,但是下面的代码在base R中做了你想要的。

代码语言:javascript
复制
df <- read.table(header = TRUE, text = 
"v1  v2 v3 v4        v5
3  10 20  1 0.5000000
1  10 20  2 0.5000000
2  10 30  1 0.3333333
1  10 30  2 0.3333333
1  10 40  1 0.2500000
1  10 45  1 0.2222222
1  10 45  1 0.2222222")

cols <- c("v2", "v3", "v5")
df.u <- unique(df[,cols]) # Get unique rows

# Initialise plot
plot(1, type = "n", xlim = range(df[,"v1"]), ylim = range(df[,"v4"]))

for (i in seq_len(nrow(df.u))) {
  # Subset to unique row
  df.sub <- df[df$v2==df.u$v2[i] & df$v3==df.u$v3[i] & df$v5==df.u$v5[i], ]
  # Plot
  lines(df.sub$v1, df.sub$v4, col = i, type = "b", pch = i, lty = i)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44672294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档