2016-04-29 7 views
-1

plotten Ich habe diese Daten mydata genannt. Diese Daten enthalten IB_value Spalten, die von size betroffen sind. Also für IB_value1, es ist verwandt mit und IB_value2 zu size2 und so weiter. Ich möchte IB-Werte in Y-Achse und Größe in X-Achse darstellen und die progressive Änderung (in 2D-Linien und nicht Echtzeit-Diagramm) sehen. Ist es möglich, dies in R zu zeichnen?Wie können wir dynamisch progressive Daten in 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

Ja. Es gibt auch ein "Vermögen" in diesem Ausmaß, aber ich kann es jetzt nicht finden. –

Antwort

1

Ein alternativer Weg, es zu tun ist:

#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

Grundsätzlich wir unseren Datenrahmen schmelzen, dann schaffen wir Größe basierend auf welchem ​​Wert von IB_value wir sind Betrachten und der letzte Schritt ist es zu plotten.

Auch wenn Sie eine dritte Dimension wie einen Zeitaspekt hinzufügen möchten, wäre es einfach genug, um die Größe der Linienstärke zu entsprechen, und dann könnten Sie Änderungen in IB_size über die Zeit verfolgen.

EDIT - Per OPs Kommentar unten, für jede Probe Plotten

Edited wieder nach Kommentaren unten. Sehen Sie, wenn dies ist, was Sie wollen:

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

enter image description here

+0

Ich wollte für plot jedes Sample für alle drei IB_Values ​​und Größe. Etwas, das wie folgt aussehen würde: http://stackoverflow.com/questions/36823346/how-to-plot-asymptote-of-a-curve-in-r/36824529? Noredirect = 1 # comment61248926_36824529 – MAPK

+0

Ich habe meine Antwort bearbeitet. Haben Sie danach gesucht? –

+0

Danke, aber selbst dies berücksichtigt keine IB_value Spalten. Es sollte eine proportionale Änderung der Größe gegenüber den IB-Werten für jede Probe geben. – MAPK

1

Ist dies die Ausgabe, nach der Sie suchen? (Ihre Daten werden als Faktoren gespeichert, die möglicherweise Probleme verursachen).

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

Ich wollte für jede Probe für alle drei IB_Values ​​und Größe plotten. Etwas, das wie folgt aussehen würde: http: //stackoverflow.com/questions/36823346/how-to-plot-asymptote-of-a-curve-in-r/36824529? Noredirect = 1 # comment61248926_36824529 – MAPK

Verwandte Themen