2016-11-30 4 views
0

Ich habe 300 Variablen (Spalten) in 10 Zeitpunkten (Zeilen) aufgenommen, für jede Variable zu jedem gegebenen Zeitpunkt habe ich Temperaturwerte A und F.R Liniendiagramme, Werte außerhalb Grundstück

Beigefügt ist eine Probe von der Datenrahmen

structure(list(Timepoint = c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 
5L, 5L, 6L, 6L, 7L, 7L, 8L, 8L, 9L, 9L, 13L, 13L, 25L, 25L), 
Temperature = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("A", 
"F"), class = "factor"), Concentration.of.chylomicrons = c(1.29e-11, 
1.25e-11, 1.02e-11, 1.1e-11, 1.08e-11, 1.3e-11, 1.28e-11, 
1.26e-11, 1.06e-11, 1.32e-11, 8.85e-12, 1.21e-11, 8.83e-12, 
1.08e-11, 1.35e-11, 1.12e-11, 8.99e-12, 1.08e-11, 9.55e-12, 
1.04e-11, 0, 1.01e-11), Total.lipids = c(0.00268, 0.0026, 
0.00208, 0.00225, 0.00222, 0.0027, 0.00268, 0.0026, 0.00219, 
0.00273, 0.0018, 0.00247, 0.00179, 0.00221, 0.00276, 0.00229, 
0.00182, 0.00222, 0.00195, 0.00212, 0, 0.00204), Phospholipids = c(0.000224, 
0.000223, 0.000145, 0.00016, 0.000157, 0.000211, 0.00023, 
0.000211, 0.000165, 0.000224, 0.000109, 0.00018, 0.000113, 
0.000163, 0.000175, 0.000177, 0.000122, 0.000173, 0.000127, 
0.000156, 0, 0.000138)), .Names = c("Timepoint", "Temperature", 
"Concentration.of.chylomicrons", "Total.lipids", "Phospholipids" 
), class = "data.frame", row.names = c(NA, -22L)) 

Ich möchte ein Liniendiagramm zeichnen, um zu zeigen, wie jede Variable mit der Zeit variiert. In diesem Liniendiagramm möchte ich, dass die A- und F-Zeilen gezeichnet werden. Ich habe es erfolgreich geschafft, den Schleifencode dafür zu schreiben.

# subset based on temperatures A and F 
a_df <- subset(df, Temperature == "A") 
f_df <- subset(df, Temperature == "F") 

# loop from columns 3:x 
for (i in 3:x) { 
    plot(a_df[, 1], 
     a_df[, i], 
     type = "l", 
     ylab = colnames(a_df[i]), 
     xlab = "Timepoint", 
     lwd = 2, 
     col = "blue") 
    lines(f_df[, 1], 
     f_df[, i], 
     type = "l", 
     lwd = 2, 
     col = "red") 
    legend("bottomleft", 
     col = c("blue", "red"), 
     legend = c("Temperature A", "Temperature F"), 
     lwd = 2, 
     y.intersp = 0.5, 
     bty = "n") 
} 

jedoch für bestimmte Variablen, bestimmte Punkte außerhalb der Zeichnungsfläche sind, angebracht Bild unten

Please click on this link for image Wie kann ich sicherstellen, dass Kommando in dieser Schleife I graghs mit allen Punkten sichtbar machen kann. Ich bin sicher, es gibt einen schnellen Weg, um das zu beheben, kann jemand helfen?

Ich habe die folgende Zeile versucht, freundlich ylim = c (min (f_df vorgeschlagen [- 1], max (f_df [- 1]),

bekomme ich folgende Fehlermeldung

for (i in 3:229) { + plot(a_df[, 1], + a_df[, i], + type = "b", + ylim = c(min(f_df[,-1] ,max(f_df[,-1]), + ylab = colnames(f_df[i]), + main = colnames(f_df[i]), + xlab = "Timepoint", + lwd = 2, + col = "red") + lines(f_df[, 1], Error: unexpected symbol in: " col = "red") lines" f_df[, i], Error: unexpected ',' in " f_df[, i]," type = "b", Error: unexpected ',' in " type = "b"," lwd = 2, Error: unexpected ',' in " lwd = 2," col = "blue") Error: unexpected ')' in " col = "blue")" legend("bottomleft", + col = c("red", "blue"), + legend = c("Ambient", "Fridge"), + lwd = 2, + y.intersp = 0.5, + bty = "n") Error in strwidth(legend, units = "user", cex = cex, font = text.font) : plot.new has not been called yet } Error: unexpected '}' in "}"

Lakmal

+0

probiere 'ylim = c (min (f_df [, - 1], max (f_df [, - 1]) 'in deinem Plot-Befehl? – dww

+0

) Ist es wichtig, wo im Befehl ich diese Zeile schreibe, bekomme ich den Fehler ohne irgendwelche plots – NLM09

+0

wäre es eine idee, die plot-grenzen der 'plot'-funktion in ihrer for-schleife hinzuzufügen, um die reichweite ihrer daten zu erreichen? Etwas wie: 'ylim = c (min (a_df [, i], f_df [ , i]), max (a_df [, i], f_df [, i])), 'edit: gleicher Vorschlag wie dww, aber ich denke, dass Sie den Bereich als Minimum und Maximum in beiden Datensätzen angeben müssen setze den Befehl in die "Plot" -Funktion, damit er funktioniert. – Niek

Antwort

0

in einer Antwort auf rekapitulieren. Einstellung ylim löst das Problem

# loop from columns 3:x 
for (i in 3:x) { 
    plot(a_df[, 1], 
     a_df[, i], 
     type = "l", 
     ylab = colnames(a_df[i]), 
     xlab = "Timepoint", 
     ylim = c(min(df[,-1]) ,max(df[,-1])), 
     lwd = 2, 
     col = "blue") 
... 

legt die Plot-Grenzen für jedes Plot gleich, was besser ist, wenn Sie die Plots vergleichen möchten, aber den Nachteil hat, dass der Plot-Bereich erheblich größer ist als Ihre Daten.

# loop from columns 3:x 
for (i in 3:x) { 
    plot(a_df[, 1], 
     a_df[, i], 
     type = "l", 
     ylab = colnames(a_df[i]), 
     xlab = "Timepoint", 
     ylim = c(min(df[,i]) ,max(df[,i])), 
     lwd = 2, 
     col = "blue") 
... 

setzt neue Grenzen für jede Handlung, die zum Vergleich schlechter ist reduziert, aber unnötigen Leer Grundstück Raum. Ich habe min(a_df[, i],f_df[, i]) durch min(df[,i]) ersetzt, da sie identisch sein sollten.