2016-12-08 4 views
1

Ich habe eine Matrix in R wie folgtPlot A 4 Spaltendaten als Punktdiagramm in R

   H520KOR1 H520KOR2 H5202GyPHR1 H5202GyPHR2 
ILMN_1702609 5.916239 6.068699 4.910235 4.983025 
ILMN_1762631 5.490704 5.454779 4.573977 4.628981 
ILMN_2193175 5.730220 5.726268 6.222486 6.273563 
ILMN_3310451 4.955594 5.007212 4.423170 4.333526 

Ich würde es in der folgenden Art und Weise

please check plot here

I Dieses zeichnete plotten mag Bild in PowerPoint. Ich habe verschiedene Wege ausprobiert, aber mir fehlt etwas. Jede Hilfe würde sehr geschätzt werden.

EDIT

nahm ich die ersten 10 Reihen von Matrix und dput()

> dput(dat) 
structure(c(5.91623892229345, 5.49070424526676, 5.73021963287428, 
4.9555939015656, 7.34200299329158, 4.49057379554289, 5.17555122512255, 
5.6535332613054, 4.96143970172796, 4.4791600551366, 6.06869857120224, 
5.45477925441301, 5.72626774546258, 5.00721151456707, 7.33658261931523, 
4.36058760303988, 5.13085555870237, 5.77523892720755, 4.96844107374241, 
4.41926414134707, 4.91023457951491, 4.57397741940793, 6.22248596066649, 
4.42317017555403, 7.95776070495557, 5.13499805485839, 4.39694778946656, 
4.80648887200906, 4.44717629932841, 5.25723605338541, 4.98302491117088, 
4.62898140897605, 6.27356272326665, 4.33352596469113, 7.9391551372836, 
5.13491596111887, 4.48130179704286, 4.90950199548828, 4.43674075246716, 
5.13877204607323), .Dim = c(10L, 4L), .Dimnames = list(c("ILMN_1702609", 
"ILMN_1762631", "ILMN_2193175", "ILMN_3310451", "ILMN_1808219", 
"ILMN_1703280", "ILMN_1705466", "ILMN_2135232", "ILMN_1839994", 
"ILMN_3234823"), c("H520KOR1", "H520KOR2", "H5202GyPHR1", "H5202GyPHR2" 
))) 

Wäre es auch die Daten von zwei Wiederholungen in eine Linie zu zeichnen möglich sein, da ein data.frame wie folgende

, die den Plot zu folgenden ändern würde (Anstatt einzelne Plots zu e ach Zeile, ich denke, es wäre besser, alle Zeileninformationen in einen Plot aufzunehmen, was die Interpretation weiter erleichtern würde. Ich lerne nur die Möglichkeiten mit ggplot2. Dies hilft auf dem Weg. Vielen Dank.

enter image description here

+0

Möchten Sie für jede Datenzeile ein Punktdiagramm erstellen? – figurine

+0

Das wäre großartig, wenn wir für jede Zeile erstellen können. Es gibt höchstens 60 Zeilen. – cat

+0

Danke, dass Sie keine Barplots verwenden. –

Antwort

0
library(tidyverse) 

read.table(text="expression H520KOR1 H520KOR2 H5202GyPHR1 H5202GyPHR2 
ILMN_1702609 5.916239 6.068699 4.910235 4.983025 
ILMN_1762631 5.490704 5.454779 4.573977 4.628981 
ILMN_2193175 5.730220 5.726268 6.222486 6.273563 
ILMN_3310451 4.955594 5.007212 4.423170 4.333526", 
      stringsAsFactors=FALSE, header=TRUE) -> df 

Für ggplot2, wird dies besser funktionieren als "lang" Datenrahmen:

df <- gather(df, category, value, -expression) 

Sie können sie alle auf einem Grundstück (obwohl, mit 60 von ihnen, die Farbe wirklich funktioniert nicht):

ggplot(df, aes(x=category, y=value, color=expression)) + 
    geom_point(size=3) + 
    scale_color_discrete(name=NULL) + 
    theme(legend.position="top") 

Sie sie aus (wieder Facette kann ich, wenn Sie die Farbe entfernen würde Sie haben 60 von ihnen wirklich):

ggplot(df, aes(x=category, y=value, color=expression)) + 
    geom_point(size=3) + 
    facet_wrap(~expression) + 
    theme(legend.position="none") 

Wir haben keine Ahnung, was Styling oder Kennzeichnungsvorschriften Sie haben, so ist dies das Beste, was man mit den begrenzten Informationen tun.

Wenn Sie wirklich eine Matrix vs. einen Datenrahmen haben, müssen Sie sie zuerst konvertieren und sicherstellen, dass die Zeilennamen in eine Spalte übergehen. Eine dput() Ihrer Daten würde helfen, uns zu veranschaulichen, wie dies zu tun ist (falls erforderlich).

+0

Vielen Dank. Das ist wirklich großartig. Nachdem ich die Möglichkeiten mit ggplot2 gekannt habe, möchte ich die Art ändern, in der das Plot aussieht. Bitte überprüfen Sie den Original-Thread. Ich habe einige weitere Informationen mit 'dput()' hinzugefügt – cat