2016-04-29 73 views
-1

我有这个数据叫mydata。该数据包含受影响的IB_value列。因此,对于IB_value1,它与size1IB_value2size2等有关。我想绘制Y轴上的IB_values和X轴上的大小,并看到渐进变化(在2D线条中而不是实时绘图)。是否有可能在R中绘制这个图?我们如何在R中绘制动态渐进数据

mydata <-structure(c("S05-F13-P01", "S08-F10-P01", "S08-F11-P01", "S09-F66-P01", 
"S09-F67-P01", "S09-F68-P01", "S09-F01-P01", "S09-F02-P01", "S09-F03-P01", 
"S09-F04-P01", "1.05", "1.1", "1.03", "1.11", "1.11", "1.06", 
"1.04", "0.978", "1.05", "1.08", "2251", "1923", "2085", "1954", 
"2105", "2125", "2183", "2179", "1909", "1805", "0.75", "0.8", 
"0.73", "0.81", "0.81", "0.76", "0.74", "0.678", "0.75", "0.78", 
"1230", "902", "1064", "933", "1084", "1104", "1162", "1158", 
"888", "784", "0.55", "0.6", "0.53", "0.61", "0.61", "0.56", 
"0.54", "0.478", "0.55", "0.58", "751", "423", "585", "454", 
"605", "625", "683", "679", "409", "305"), .Dim = c(10L, 7L), .Dimnames = list(
    c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"), c("samples", 
    "IB_value1", "size1", "IB_value2", "size2", "IB_value3", 
    "size3"))) 
+2

是。还有一个“财富()”,但我现在找不到它。 –

回答

1

的另一种方式做到这一点是:

#Make data frame 
mydf <- as.data.frame(mydata) 
#Melt dataframe 
mydf_m <- melt(mydf,measure.vars=grep("IB_value", names(mydf), value=TRUE)) 
#Create index 
mydf_m$index <- substr(as.character(mydf_m$variable),nchar(as.character(mydf_m$variable)), nchar(as.character(mydf_m$variable))) 
#Replace size based on which variable it is 
mydf_m$size_final <- sapply(1:nrow(mydf_m),function(i) as.numeric(as.character(mydf_m[i,paste0("size",mydf_m$index[i])]))) 

ggplot(data=mydf_m) + geom_line(aes(x=size_final,y=variable)) 

enter image description here

基本上,我们融化我们的数据帧,然后我们创建一个基于我们是什么IB_value的价值大小看着,最后一步是绘制它。

另外,如果您想添加第三个维度,例如时间维度,那么将尺寸对应于线条粗细就足够简单,然后您可以跟踪IB_size随时间的变化。

编辑 - 每OP的评论如下,再次描绘每个样品

市价修改下面的评论。看看这是你想要什么:

ggplot(data=mydf_m) + geom_line(aes(x=size_final,y=value, group = samples,color=samples)) 

enter image description here

+0

我想绘制所有三个IB_values和大小的每个样本。看起来像这样的东西:http://stackoverflow.com/questions/36823346/how-to-plot-asymptote-of-a-curve-in-r/36824529?noredirect = 1#comment61248926_36824529 – MAPK

+0

我编辑我的回应。那是你在找什么? –

+0

谢谢,但即使这不包括IB_value列。每个样本的大小与IB值应该成比例变化。 – MAPK

1

这是您要查找的输出吗? (您的数据存储为因素,这可能会造成您的麻烦)。

require(ggplot2) 
mydata <- as.data.frame(mydata) 
d1 <- as.data.frame(apply(mydata[,2:7], 2, function(x) as.numeric(as.character(x)))) 
d2 <- data.frame(IB_value = c(d1$IB_value1, d1$IB_value2, d1$IB_value3), size = c(d1$size1, d1$size2, d1$size3), num = rep(1:3, each = 10)) 
ggplot(data = d2) + geom_path(aes(x = size, y = IB_value, color = factor(num)) 

enter image description here

+0

我想绘制所有三个IB_values和大小的每个样本。看起来像这样的东西:http://stackoverflow.com/questions/36823346/how-to-plot-asymptote-of-a-curve-in-r/36824529?noredirect = 1#comment61248926_36824529 – MAPK