4

我正在使用 ggplot 绘制多个数据集,但是我想绘制它们以便每个数据集都有自己的geom_line功能,以便我可以将线条分开并在需要时隐藏它们。

 ggplot(MeanFrameMelt, aes(x=variable, y=value, 
           color=Legend, group=Legend)) + geom_line()

使用包reshape中的melt函数转换后的输入表:

Legend        variable  value
table_A.txt V1  0.008927491
table_B.txt V1  0.009080929
table_C.txt V1  0.008513332
table_D.txt V1  0.008337751
table_A.txt V2  0.008957742
table_B.txt V2  0.009100265
table_C.txt V2  0.008508966

表 A 应该是一个geom_line(图表上的线)表 B 是第二个geom_line,依此类推。这是可能的还是我必须回去改变以前数据框的融化?

编辑:好的,这是融化功能:

library(plyr)
library(reshape)    
MeanFrameMelt <- melt(MeanFrame2, id.vars="Legend")

我给你的数据每条线只有两个点,所以想象一下每个表(A、B、C 和 D)都有数百个点,因此这张图上有四条线。我希望能够用一个复选框关闭每一行,但为此我需要为每一行设置一个唯一标识符,这将允许我执行此操作。所以我想的是做一个单独的+ geom_line(for table A) + geom_line(for table B) + geom_line(for table C)...

我希望这能澄清一些想法。

Edit2:这就是图表现在的样子,之后它也应该是这样的,但是有 4 个geom_line调用,而不是现在只有一个:

在此处输入图像描述

4

1 回答 1

0

我认为这接近你想要的:

ggplot(MeanFrameMelt, aes(x=variable, y=value, 
       color=Legend, group=Legend))+ geom_line(aes(linetype=Legend))

OP澄清后编辑

使用 ggplot2(也可以使用 Lattice),您可以为每一层组合数据源和子集

例如,这里我选择只显示 2 行

library(ggplot2)
  ggplot(dat, aes(x=variable, y=value, ,
                          color=Legend, group=Legend))+ 
  geom_line(subset= .(Legend %in% c('table_A.txt','table_D.txt')))

在此处输入图像描述

您可以将复选框绑定到要显示的行列表。

 geom_line(subset= .(Legend %in% visibleCheckedList))
于 2013-01-05T09:00:47.747 回答