0

我有一个看起来像这样的数据框:

| id | length_bgn | length_end |
--------------------------------
| 1  |   209      |    215     |
| 2  |   324      |    125     |
| 3  |   167      |    156     |
| .. |   ...      |    ...     |
--------------------------------

我想制作一个散点图,其中 X 轴上的长度(每行)最小值和 Y 轴上每行的最大值。我努力了:

qplot(min(length_bgn, length_end), max(length_bgn, length_end), data=df)

但是,这会绘制两列的最小值与两列的最大值的单个点。我是否使用了错误的功能?或者以某种方式操纵数据框会更好吗?请原谅任何天真,我对 R 和 ggplot2 还是很陌生。

任何帮助将非常感激。

编辑:使用上述代码的示例图:

示例散点图

4

2 回答 2

4

EDIT

library("ggplot2")

df <- read.table(text = " id  length_bgn  length_end 
        1     209          215     
 2     324          125     
 3     167          156     ", header=TRUE)

df$x <- apply(df[,c(2,3)], 1, min)
df$y <- apply(df[,c(2,3)], 1, max)


qplot(x, y, data=df)
于 2012-05-18T15:11:37.133 回答
3

@gauden 的解决方案很好(在绘图前进行处理),但如果你真的想ggplot为你做这项工作,你可以。[使用df@gauden提供的。]

qplot(pmin(length_bgn, length_end), pmax(length_bgn, length_end), data=df)

在此处输入图像描述

于 2012-05-18T18:41:13.260 回答