绘制数据框的某些列

时间:2013-12-28 17:17:25

标签: r graph plot

我的数据框具有以下名为dat的结构:

  No.  Action  Title          Replies  PlusOnes  Reshares  Url                    
   1    Share   SomeTitle     2        3         1         http://plus.google.com 
   2    Post    AnotherTitle  3        4         5         http://plus.google.com

以下是我的数据dput(dat)

structure(list(No. = 1:2, Action = c("Share", "Post"), Title = c("Some Title", 
"Another Title"), Replies = 2:3, PlusOnes = 3:4, Reshares = c(1L, 
5L), Url = c("http://plus.google.com", "http://plus.google.com"
)), .Names = c("No.", "Action", "Title", "Replies", "PlusOnes", 
"Reshares", "Url"), class = "data.frame", row.names = c(NA, -2L
))

如何在图表中绘制列RepliesPlusOnesReshares? x轴应该是No.,y轴应该是Replies / PlusOnes / Reshares的数量,这些列应该在图中各有一条单独的行。

此致

3 个答案:

答案 0 :(得分:4)

你可以这两种方式:使用标准R图形或ggplot2(我更喜欢)。

由于另一个答案解释了如何使用matplot,我会向您展示另一种方式来获得漂亮的图表。

require(ggplot2)
require(reshape2)
dat<-data.frame('No.'=1:2,replies=2:3,PlusOnes=3:4,Reshares=c(1,5))
melted=melt(dat,id.vars='No.')

ggplot(melted,aes(x=factor(No.),y=value,color=factor(variable),group=factor(variable)))+
geom_line()+xlab('No.')+guides(color=guide_legend("Series"))+
labs(title="Insert Title Here")

基本上发生的事情是reshape2包中的melt()函数将为每个No.级别的每个可能列值创建一个新的行条目。它还存储对应于的值的变量名称它在每一行中,因此很容易用ggplot绘制类似的东西。

enter image description here

答案 1 :(得分:2)

类似的东西:

with(dat,matplot(x=No.,y=cbind(Replies,PlusOnes,Reshares),type="l")

答案 2 :(得分:2)

使用lattice(我编辑添加第三个变量)

xyplot(Replies+Reshares+PlusOnes~factor(No.),
       data=dat,type='l',auto.key=T)

enter image description here