采用这种方法。我有一个线图。我想在同一个图上绘制'两个'线图。我怎样才能简单地添加该数据,
数据的格式为
1 5 10
2 8 20
3 9 30
我想将X绘制为column1,将其他两列绘制在y轴上。
-----
# Commands
2
3 library(ggplot2)
4
5 req <- read.table("stats_quick_sort.dat")
6
7 summary(req)
8
9 xx <- req$V1
10 yy <- req$V2
11
12
13 png('stats_sort_image.png', width=800, height=600)
14 gg <- qplot(xx, yy) + geom_line()
15 print(gg)
16 dev.off()
答案 0 :(得分:2)
顺便说一句 - 如果您提供演示问题的可重现的示例,我们会更容易为您提供帮助。我将给你一个可重复的例子作为答案,所以你明白我的意思。这意味着任何人都可以复制并粘贴代码并且它将起作用(而我无法复制/粘贴您的代码,因为我没有stats_quick_sort.dat
)。
要在地块上绘制多条线,您只需再次拨打geom_line
,将x
和y
变量输入aes
:
# generate some dummy data so this example can be reproduced
xx <- sort(runif(20))
yy <- runif(20)
yy2 <- runif(20)
gg <- qplot(xx, yy) + geom_line() # first line
gg <- gg + geom_line(aes( x=xx, y=yy2 )) # add the second line!
print(gg)
一般情况下,如果您想要在初始qplot
/ ggplot
来电中未提供的情节中添加其他信息,请将其输入aes
。你想要一条线?使用geom_line
。你想要新的x和y坐标?然后使用geom_line(aes(x= .., y=..))
。等等。
答案 1 :(得分:1)
使用ggplot的略微更规范的方法可能是创建一个long data.frame并将每个感兴趣的变量映射到美学。这提供了一种自动添加图例等的简便方法。这也比每次想要新行时添加单个图层更容易。这是一个例子:
library(ggplot2)
library(reshape2)
#Thanks mathematical coffee for data
dat <- data.frame(xx = sort(runif(20))
, yy = runif(20)
, yy2 = runif(20))
#Melt into long format, using xx as the ID variable
dat.m <- melt(dat, id.vars = "xx")
#What does this look like now?
> head(dat.m,3)
xx variable value
1 0.001895333 yy 0.1240757
2 0.037347893 yy 0.8760621
3 0.086915655 yy 0.4068837
#use ggplot and set the group and colour aesthetic to the variable column. This adds a legend
ggplot(dat.m, aes(xx, value, group = variable, colour = variable)) +
geom_line()