如何在R ggplot2中使用较小的值绘制相同图形中的2条线

时间:2014-03-21 13:21:56

标签: r ggplot2

我有csv格式的以下数据

0.828666667 0.100333333
0.725666667 0.153666667
0.364333333 0.036666667
0.475666667 0.051    
0.522333333 0.052333333    
0.457   0.041666667    
0.644666667 0.093333333    
0.404333333 0.039333333    
0.497   0.042333333    
0.155666667 0.031666667    
0.160666667 0.081333333    
0.145666667 0.026666667    
0.138666667 0.033666667    
0.094333333 0.03    
0.141   0.023666667    
0.148666667 0.052    
0.195666667 0.039    
0.196333333 0.039333333
......

我正在使用以下代码

library(ggplot2)
data<-read.csv("sample.csv",header=TRUE,sep=",")
ggplot(data,aes(x=A,y=B,))+ geom_line() + scale_x_continuous(breaks=seq(0,9,0.5)) + 
scale_y_continuous(breaks=seq(0,9,0.5))

我希望在x和y轴上具有相同的比例,因为我正在使用中断...但是这并不能给出我想要它做绘图的内容

enter image description here

但我想按照以下图像查看示例第二张图片enter image description here

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

我不确定我到底知道你想做什么。但是我的尝试是从你的数据中获取类似于你的第二个情节的东西。

data <- read.table(text="0.828666667 0.100333333
0.725666667 0.153666667
0.364333333 0.036666667
0.475666667 0.051    
0.522333333 0.052333333    
0.457   0.041666667    
0.644666667 0.093333333    
0.404333333 0.039333333    
0.497   0.042333333    
0.155666667 0.031666667    
0.160666667 0.081333333    
0.145666667 0.026666667    
0.138666667 0.033666667    
0.094333333 0.03    
0.141   0.023666667    
0.148666667 0.052    
0.195666667 0.039    
0.196333333 0.039333333")
names(data) <- c("A", "B")
# prepare data for plotting
require(reshape2)
data$id <- 1:nrow(data)
df <- melt(data, id.var="id")
# plot
library(ggplot2)
ggplot(df, aes(x=id, y=value, color=variable)) + geom_line() 

如果这不能回答您的问题,请尝试更具体。

答案 1 :(得分:0)

我认为你需要稍微操纵数据......

library(reshape2)
library(ggplot2)

dat <- YOUR CSV
names(dat) <- c('a', 'b')

# need an x for the plot 
dat$Num <- as.numeric(row.names(dat))

meltDat <- melt(dat, id.vars = 'Num')

ggplot(meltDat, 
       aes(x = Num, y = value, group = variable, color = variable)) +
geom_line()

enter image description here