0

按照这个例子:

http://wiki.stdout.org/rcookbook/Graphs/Multiple%20graphs%20on%20one%20page%20(ggplot2)/

请参阅标题为“每种饮食的拟合生长曲线”的图表,我想做同样的事情,但使用 CSV 文件中的一组数据,例如(值以 µs 为单位,“N”列除外):

$ head RandomArray25PercentDup.csv 
N   SystemSort  QuickSort   RandomizedQuickSort TopDownMergeSort    BottomUpMergeSort   SelectionSort   InsertionSort   BubbleSort  
4   0   1   0   1   0   1   0   0   
5   0   0   0   1   1   0   1   0   
6   0   0   0   1   1   0   0   0   
7   0   0   0   0   1   0   0   0   
8   0   0   1   0   1   0   1   1   

...

到目前为止,我已经尝试过:

library(ggplot2)
library(reshape2)

data <- read.table("RandomArray25PercentDup.csv",
                   sep="\t",
                   header=TRUE)
data.m <- melt(data, id.vars = 1)

ggplot(data.m, aes(data, value, colour=variable)) +
    geom_point(alpha=.3) +
    geom_smooth(alpha=.2, size=1) +
    ggtitle("Random array with ~25% duplicate values")

我在 R 方面的背景非常有限,我正在尝试使用各种资源进行学习。

我有大约 800'000 行的数据,每个 N 的测量重复 20 次(这就是为什么我想通过每个算法的拟合曲线看到散布透明的原因)。

4

1 回答 1

2

更换这个

data.m <- melt(data, id.vars = 1)

data.m <- melt(data, id.vars = "N")

接着

ggplot(data.m, aes(data, value, colour=variable)) +
    geom_point(alpha=.3) +
    geom_smooth(alpha=.2, size=1) +
    ggtitle("Random array with ~25% duplicate values")

ggplot(data.m, aes(N, value, colour=variable)) +
    geom_point(alpha=.3) +
    geom_smooth(alpha=.2, size=1) +
    ggtitle("Random array with ~25% duplicate values")

应该做的伎俩。第一次替换并不是真正必要的,但如果列的顺序发生变化,最好使用变量名。in 的第一个参数aes映射到 x 轴。data不是列,因此无法映射。

于 2012-12-18T22:58:34.810 回答