Datenpunkte in geom_point einfärben

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

eimichae
Beiträge: 36
Registriert: Mo Okt 10, 2016 8:48 pm

Datenpunkte in geom_point einfärben

Beitrag von eimichae »

Hallo zusammen,
Ich möchte gerne von 6 treatments (alle Komibinationen von "high", "mid" , "low" und "damage" und "control") die Rohdatenpunkte plotten und in jedem der sechs "Datenwolken" den Mittelwert + SE anzeigen (siehe Bild 1 in rot&schwarz am Ende)


Der R-Code dazu befindet sich hier (die Rohdaten (dput) finden sich ganz am Schluss des Beitrages)

Code: Alles auswählen

require(ggplot2)

#REMOVE START FOR ANALYSIS
dta<-subset(dta_complete,Time=="Stop")
dta

#Calculation of SE
data_summary <- function(x) {
  m <- mean(x)
  ymin <- m-sd(x)/sqrt(length(x))
  ymax <- m+sd(x)/sqrt(length(x))
  return(c(y=m,ymin=ymin,ymax=ymax))
}

pd1 = position_dodge(0.5)

plot_CT<- ggplot(dta, aes(x=Location, y=CT, colour=Treatment,shape=Treatment)) + 
  stat_summary(fun.data=data_summary, position=pd1, geom="errorbar", width=0.05) +
  stat_summary(fun.data=data_summary, position=pd1, geom="point", size=2) +
  geom_point(position=position_jitterdodge(dodge.width=0.8, jitter.height=0, jitter.width=0.2),
             alpha=0.7) +
  labs(title="", x="", y = "CT (% dw)")+
  scale_color_manual(labels=c("Control", "Damaged"),values=c("red","black"),guide = guide_legend(reverse = TRUE) )+
  scale_shape_manual(labels=c("Control", "Damaged"),name="Treatment",values = c(16,16),guide = guide_legend(reverse = TRUE) )+ 
  #Style of background
  theme_classic()+
  #Change title
  theme(plot.title = element_text(color="black", size=17, face="bold"))+
  #Font size axis
  theme(axis.text=element_text(size=12),
        axis.title=element_text(size=17))+
  scale_x_discrete("Location",labels = c("Low", "Mid", "High"),expand=c(0.1, 0.5))+
  coord_flip()

plot_CT



Die Einzelnen Datenpunkte können je 8 Genotypen (Baumarten) zugeordnet werden. Ich möchte nun in einem zweiten Schritt die Datenpunkte nach Genotyp einfärben. D.h. z.B. alle Datenpunkte von Genotyp A grün, all Datenpunkte von Genotyp B gelb etc.
Es finden sich pro treatment 4 Datenpunkte jedes Genotyps.
Ich habe versucht folgendes zu machen

1. ich habe die Funktion geom_point um "aes(color=Genotype" ergänzt
geom_point(aes(color=Genotype,......


2. ich habe "scale_color_manual" um 8 Farben ergänzt
scale_color_manual(labels=c("Control","Damaged"),values=c("red","black","#067c43","#89b651","#dc5b09","#e4a710","#92c5de","grey","#1d71b4","#7873a3"......


PROBLEM: Meine Einzelnen Datenpunkte werden innerhalb von "low", "mid" und "high" nach Farben bzw. Genotyp sortier. D.h. es lässt sich nicht mehr unterscheiden, welche Datenpunkte von welchem der 6 treatments stammt (siehe Bild 2 mit Farbigen Punkten am Ende)



FRAGE:
1. Wie muss ich meinen Code abänder, damit ich die einzelnen Datenpunkte nach Genotyp einfärben kann, ohne dass die Datenpunkte nach "Genotyp" sortiert werden. Ich möchte die Struktur von Bild1 erhalten, aber die Datenpunkte einfärben. Was muss ich an meinem Code ändern?

2. Wie kann ich verhindern, dass mir 2 Legenden angezeigt werden? Ich brauche nur 1 Legende (Damage vs. Control)

Vielen, vielen Dank,

Michi

ROHDATEN:

Code: Alles auswählen

> dput(dta)
structure(list(Location = structure(c(2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L), .Label = c("High", "Low", "Mid"
), class = "factor"), Treatment = structure(c(2L, 2L, 2L, 1L, 
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 
1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 
2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 
1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 
1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 
2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 
2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 
2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 
2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 
2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L), .Label = c("Con", "Exp"
), class = "factor"), Time = structure(c(2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Start", "Stop"
), class = "factor"), Genotype = structure(c(7L, 7L, 7L, 7L, 
7L, 7L, 4L, 4L, 4L, 4L, 4L, 4L, 6L, 6L, 6L, 6L, 6L, 2L, 2L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 8L, 8L, 8L, 8L, 8L, 8L, 1L, 
1L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L, 4L, 4L, 4L, 
4L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 6L, 6L, 6L, 
6L, 6L, 6L, 8L, 8L, 8L, 8L, 8L, 8L, 5L, 5L, 5L, 5L, 5L, 5L, 7L, 
7L, 7L, 7L, 7L, 1L, 1L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 
1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 
4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 
7L, 7L, 7L, 7L, 6L, 6L, 6L, 6L, 6L, 6L, 8L, 8L, 8L, 8L, 8L, 8L, 
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 
1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 
8L, 8L, 8L, 8L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("A", "B", 
"C", "D", "E", "F", "G", "H"), class = "factor"), Time.Location = structure(c(5L, 
6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 4L, 5L, 6L, 4L, 
5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 
6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 
4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 
5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 
6L, 4L, 5L, 6L, 4L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 
5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 
6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 
4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 
5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 
6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 
4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L), .Label = c("StartHigh", 
"StartLow", "StartMid", "StopHigh", "StopLow", "StopMid"), class = "factor"), 
    Location.Treatment = structure(c(4L, 6L, 2L, 3L, 5L, 1L, 
    4L, 6L, 2L, 3L, 5L, 1L, 4L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 
    5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 
    6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 
    5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 
    6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 
    5L, 1L, 4L, 6L, 2L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 
    2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 
    1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 
    2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 
    1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 
    2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 
    1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 
    2L, 3L, 5L, 1L), .Label = c("HighCon", "HighExp", "LowCon", 
    "LowExp", "MidCon", "MidExp"), class = "factor"), CT = c(4.61538, 
    3.96739, 7.34797, 3.58108, 2.89655, 2.7993, 10.56122, 10.68396, 
    15.57252, 6.79245, 9.23469, 9.18, 1.1087, 4.26136, 1.14504, 
    2.20238, 3.15789, 9.54082, 11.05263, 15.84783, 10.48986, 
    12.62195, 15.12931, 5.51471, 8.20313, 11.85811, 3.38115, 
    7.5, 9.69512, 8.64407, 11.30597, 14.42797, 8.8125, 11.82482, 
    11.53061, 6.97674, 9.62766, 10.88028, 5.50403, 9.73558, 8.56419, 
    11.84524, 16.34892, 18.15789, 10.58036, 14.80932, 12.06081, 
    12.96992, 9.86014, 12.45652, 6.625, 6.93396, 9.10714, 3.66142, 
    9.19811, 10.88346, 2.88851, 6.85096, 10.27778, 8.29787, 13.00885, 
    14.38017, 7.5, 11.77734, 13.84615, 2.22772, 5.28, 5.25641, 
    1.0514, 2.73256, 4.11111, 11.39098, 11.10236, 13.00781, 7.95259, 
    10.15748, 13.16327, 8.90625, 10.04587, 13.625, 6.27049, 9.27966, 
    10.94037, 5.80189, 7.76978, 7.34266, 3.80952, 3.75, 7.29545, 
    10.45872, 16.83206, 5.95238, 7.70833, 10.92391, 11.03659, 
    14.39338, 14.88281, 8.22917, 11.63603, 14.7561, 11.9469, 
    14.65649, 16.84615, 8.37209, 13.27982, 13.69128, 7.77778, 
    12.59124, 12.32955, 7.00472, 8.41121, 7.22222, 9.43878, 10.33613, 
    14.16667, 9.60526, 8.77232, 11.91589, 7.01786, 12.29592, 
    11.83673, 8.55634, 11.17347, 12.68836, 2.7551, 6, 7.21374, 
    2.52101, 4.03846, 4.80634, 5.49569, 4.78723, 6.02273, 3.04511, 
    3.59244, 2.48239, 1.54412, 5.74219, 7.68595, 1.33065, 2.625, 
    4.42164, 9.66942, 11.875, 17.91667, 10.81731, 13.05288, 16.23853, 
    11.93662, 14.31818, 14.09396, 7.82374, 15.5042, 10.86207, 
    6.87023, 11.69492, 12.65957, 3.48684, 5.29018, 7.89474, 10.53309, 
    17.05479, 16.63866, 7.43119, 12.06522, 12.05607, 6.14865, 
    10.44, 14.69512, 9.24757, 9.04018, 12.38255, 2.22222, 3.90756, 
    5.85616, 2.23958, 3.8125, 3.01056, 11.60256, 12.22222, 11.8007, 
    7.76316, 10.08197, 12.78777, 9.20455, 12.1875, 16.59449, 
    6.82331, 10.91518, 11.5748)), row.names = 192:381, class = "data.frame")[attachment=1]plot1.jpeg[/attachment][attachment=0]plot 2.jpeg[/attachment]
Dateianhänge
plot 2.jpeg
plot1.jpeg
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Datenpunkte in geom_point einfärben

Beitrag von Hufeisen »

Hi,

könntest du deine Daten oder einen repräsentativen Ausschnitt davon anhängen? Ich würde gerne deinen Code nachvollziehen, denn mich wundert schon, dass

Code: Alles auswählen

return(c(y=m,ymin=ymin,ymax=ymax))
etwas sinnvolles ausgibt.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Datenpunkte in geom_point einfärben

Beitrag von bigben »

eimichae hat geschrieben: Do Apr 04, 2019 11:51 pm (die Rohdaten (dput) finden sich ganz am Schluss des Beitrages)
[...]ROHDATEN:

Code: Alles auswählen

> dput(dta)
structure(list(Location = structure(c(2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L), .Label = c("High", "Low", "Mid"
), class = "factor"), Treatment = structure(c(2L, 2L, 2L, 1L, 
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 
1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 
2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 
1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 
1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 
2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 
2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 
2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 
2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 
2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L), .Label = c("Con", "Exp"
), class = "factor"), Time = structure(c(2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Start", "Stop"
), class = "factor"), Genotype = structure(c(7L, 7L, 7L, 7L, 
7L, 7L, 4L, 4L, 4L, 4L, 4L, 4L, 6L, 6L, 6L, 6L, 6L, 2L, 2L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 8L, 8L, 8L, 8L, 8L, 8L, 1L, 
1L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L, 4L, 4L, 4L, 
4L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 6L, 6L, 6L, 
6L, 6L, 6L, 8L, 8L, 8L, 8L, 8L, 8L, 5L, 5L, 5L, 5L, 5L, 5L, 7L, 
7L, 7L, 7L, 7L, 1L, 1L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 
1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 
4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 
7L, 7L, 7L, 7L, 6L, 6L, 6L, 6L, 6L, 6L, 8L, 8L, 8L, 8L, 8L, 8L, 
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 
1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 
8L, 8L, 8L, 8L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("A", "B", 
"C", "D", "E", "F", "G", "H"), class = "factor"), Time.Location = structure(c(5L, 
6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 4L, 5L, 6L, 4L, 
5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 
6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 
4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 
5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 
6L, 4L, 5L, 6L, 4L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 
5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 
6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 
4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 
5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 
6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 
4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 4L), .Label = c("StartHigh", 
"StartLow", "StartMid", "StopHigh", "StopLow", "StopMid"), class = "factor"), 
    Location.Treatment = structure(c(4L, 6L, 2L, 3L, 5L, 1L, 
    4L, 6L, 2L, 3L, 5L, 1L, 4L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 
    5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 
    6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 
    5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 
    6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 
    5L, 1L, 4L, 6L, 2L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 
    2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 
    1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 
    2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 
    1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 
    2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 
    1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 2L, 3L, 5L, 1L, 4L, 6L, 
    2L, 3L, 5L, 1L), .Label = c("HighCon", "HighExp", "LowCon", 
    "LowExp", "MidCon", "MidExp"), class = "factor"), CT = c(4.61538, 
    3.96739, 7.34797, 3.58108, 2.89655, 2.7993, 10.56122, 10.68396, 
    15.57252, 6.79245, 9.23469, 9.18, 1.1087, 4.26136, 1.14504, 
    2.20238, 3.15789, 9.54082, 11.05263, 15.84783, 10.48986, 
    12.62195, 15.12931, 5.51471, 8.20313, 11.85811, 3.38115, 
    7.5, 9.69512, 8.64407, 11.30597, 14.42797, 8.8125, 11.82482, 
    11.53061, 6.97674, 9.62766, 10.88028, 5.50403, 9.73558, 8.56419, 
    11.84524, 16.34892, 18.15789, 10.58036, 14.80932, 12.06081, 
    12.96992, 9.86014, 12.45652, 6.625, 6.93396, 9.10714, 3.66142, 
    9.19811, 10.88346, 2.88851, 6.85096, 10.27778, 8.29787, 13.00885, 
    14.38017, 7.5, 11.77734, 13.84615, 2.22772, 5.28, 5.25641, 
    1.0514, 2.73256, 4.11111, 11.39098, 11.10236, 13.00781, 7.95259, 
    10.15748, 13.16327, 8.90625, 10.04587, 13.625, 6.27049, 9.27966, 
    10.94037, 5.80189, 7.76978, 7.34266, 3.80952, 3.75, 7.29545, 
    10.45872, 16.83206, 5.95238, 7.70833, 10.92391, 11.03659, 
    14.39338, 14.88281, 8.22917, 11.63603, 14.7561, 11.9469, 
    14.65649, 16.84615, 8.37209, 13.27982, 13.69128, 7.77778, 
    12.59124, 12.32955, 7.00472, 8.41121, 7.22222, 9.43878, 10.33613, 
    14.16667, 9.60526, 8.77232, 11.91589, 7.01786, 12.29592, 
    11.83673, 8.55634, 11.17347, 12.68836, 2.7551, 6, 7.21374, 
    2.52101, 4.03846, 4.80634, 5.49569, 4.78723, 6.02273, 3.04511, 
    3.59244, 2.48239, 1.54412, 5.74219, 7.68595, 1.33065, 2.625, 
    4.42164, 9.66942, 11.875, 17.91667, 10.81731, 13.05288, 16.23853, 
    11.93662, 14.31818, 14.09396, 7.82374, 15.5042, 10.86207, 
    6.87023, 11.69492, 12.65957, 3.48684, 5.29018, 7.89474, 10.53309, 
    17.05479, 16.63866, 7.43119, 12.06522, 12.05607, 6.14865, 
    10.44, 14.69512, 9.24757, 9.04018, 12.38255, 2.22222, 3.90756, 
    5.85616, 2.23958, 3.8125, 3.01056, 11.60256, 12.22222, 11.8007, 
    7.76316, 10.08197, 12.78777, 9.20455, 12.1875, 16.59449, 
    6.82331, 10.91518, 11.5748)), row.names = 192:381, class = "data.frame")plot1.jpegplot 2.jpeg
[/quote]
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Datenpunkte in geom_point einfärben

Beitrag von Hufeisen »

Als Datei ist das bequemer, aber stimmt, geht auch per copy und paste.

Code: Alles auswählen

str(test)
'data.frame':	190 obs. of  7 variables:
 $ Location          : Factor w/ 3 levels "High","Low","Mid": 2 3 1 2 3 1 2 3 1 2 ...
 $ Treatment         : Factor w/ 2 levels "Con","Exp": 2 2 2 1 1 1 2 2 2 1 ...
 $ Time              : Factor w/ 2 levels "Start","Stop": 2 2 2 2 2 2 2 2 2 2 ...
 $ Genotype          : Factor w/ 8 levels "A","B","C","D",..: 7 7 7 7 7 7 4 4 4 4 ...
 $ Time.Location     : Factor w/ 6 levels "StartHigh","StartLow",..: 5 6 4 5 6 4 5 6 4 5 ...
 $ Location.Treatment: Factor w/ 6 levels "HighCon","HighExp",..: 4 6 2 3 5 1 4 6 2 3 ...
 $ CT                : num  4.62 3.97 7.35 3.58 2.9 ...
Edit: Ich versuche mich da mal durchzuarbeiten, bin aber auch eher unbedarft. Das Problem der Färbung sollte aber darin liegen, dass dem Plot global ein colour-Parameter übergeben wird, der dann in einem späteren Layer überschrieben wird (?)
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Datenpunkte in geom_point einfärben

Beitrag von Hufeisen »

Ich habe mich viel zu lange damit abgemüht, aber die Legende habe ich nicht hinbekommen. Ich habe dta bei mir data genannt. data kann man auch global bei ggplot() übergeben. Ich hoffe, die Färbung der Punkte passt. Ich habe eine Farbsehschwäche und kann das nicht überprüfen. In der Legende werden 10 Werte unterschieden, also die 8 Genotypen sowie die sich überlagernden errorbar nach Treatment und die point nach Treatment. Ich habe viel rumprobiert, konnte das aber nicht auflösen. Lässt man den Code nur bis # Datenpunkte laufen, stimmt die Legende noch.

Code: Alles auswählen

# leeren Rahmen zeichnen
plot_CT2 <- ggplot() + 
            coord_flip() +
            theme_classic() +
            theme(axis.text = element_text(size = 12), axis.title = element_text(size = 17)) +
            labs(title="", x = "", y = "CT (% dw)") +

# Daten eintragen
    # SE-Bars
            stat_summary(data, fun.data = data_summary, position = pd1, geom = "errorbar", width = 0.05, mapping = aes(x = Location, y = CT, colour = Treatment)) + # SE-Bars
            stat_summary(data, fun.data = data_summary, position = pd1, geom = "point", size = 2,  mapping = aes(x = Location, y = CT, colour = Treatment, shape = Treatment)) + # Mittelwert-Punkte
  
    # Datenpunkte
            geom_jitter(data, height = 0, width = 0.2, alpha = 0.7, mapping = aes(x = Location, y = CT, colour = Genotype), show.legend = FALSE) # geom_jitter statt geom_point, show.legend = FALSE funktioniert nicht - bug?

plot_CT2
forum.png
Zuletzt geändert von Hufeisen am Fr Apr 05, 2019 5:27 pm, insgesamt 1-mal geändert.
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Datenpunkte in geom_point einfärben

Beitrag von Hufeisen »

Nachtrag, zwischenzeitlich hatte ich eine bessere Lösung. Die sieht so aus:

Code: Alles auswählen

plot_CT3 <- ggplot() + 
  coord_flip() +
  theme_classic() +
  theme(axis.text = element_text(size = 12), axis.title = element_text(size = 17)) +
  labs(title="", x = "", y = "CT (% dw)") +
  
  # Daten eintragen
  # SE-Bars
  stat_summary(data, fun.data = data_summary, position = pd1, geom = "errorbar", width = 0.05, mapping = aes(x = Location, y = CT, colour = Treatment)) + # SE-Bars
  stat_summary(data, fun.data = data_summary, position = pd1, geom = "point", size = 2,  mapping = aes(x = Location, y = CT, colour = Treatment, shape = Treatment)) + # Mittelwert-Punkte
  
  # Datenpunkte
  geom_jitter(data, height = 0, width = 0.2, alpha = 0.7, mapping = aes(x = Location, y = CT, colour = Genotype), show.legend = FALSE) + # geom_jitter statt geom_point, show.legend = FALSE funktioniert nicht - bug?

  # Legende nur nach Form aufbauen lassen
  guides(color = FALSE)

plot_CT3[attachment=0]forum2.png[/attachment]
Dateianhänge
forum2.png
eimichae
Beiträge: 36
Registriert: Mo Okt 10, 2016 8:48 pm

Re: Datenpunkte in geom_point einfärben

Beitrag von eimichae »

Hallo Hufeisen,
Vielen herzlichen Dank für deine Mühe!
Ich werde mich heute nach der Arbeit hinter deinen Code machen um zu sehen ob ich ihn auch zum laufen bringe.

Eine Frage habe ich noch:
So wie es jetzt aussieht besetht der Plot aus 3 "Datenwolken" und nicht 6 (so wie im rot-schwarzen Bild)
Liegt das lediglich an den geom_jtter Einstellungen? (unter geom_point wäre es glaube ich unter dodgewith=... veränderbar). Wo muss ich da herumspielen, damit ich eine klarere Separierung zwischen den 6 Datenwoklen (und deren Mittelwertspunkten) kriege?

Michi
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Datenpunkte in geom_point einfärben

Beitrag von Hufeisen »

eimichae hat geschrieben: Fr Apr 05, 2019 5:46 pmEine Frage habe ich noch:
So wie es jetzt aussieht besetht der Plot aus 3 "Datenwolken" und nicht 6 (so wie im rot-schwarzen Bild)
Liegt das lediglich an den geom_jtter Einstellungen? (unter geom_point wäre es glaube ich unter dodgewith=... veränderbar). Wo muss ich da herumspielen, damit ich eine klarere Separierung zwischen den 6 Datenwoklen (und deren Mittelwertspunkten) kriege?
In deinem ursprünglichen Plot hast du die Färbung genutzt, um nach Treatment zu unterscheiden. Dann wolltest du nach Genotyp einfärben. Beides geht natürlich nicht zusammen. Spontan denke ich, könnte es mit group = "Treatment" als weiteres aesthetic gehen. Ich bin aber nicht so firm in ggplot (oder in R generell), als dass ich da jetzt eine Lösung zur Hand hätte. Man könnte in geom_jitter Treatment auch einem weiteren, anderen aesthetic zuordnen, aber das ist nicht immer hübsch oder sinnvoll (sie Grafik).
Man könnte auch in den Daten eine neue Variable zur Gruppierung erzeugen und nach dieser plotten.

Code: Alles auswählen

# Korrekte Darstellung, aber die Legendenzeichen sind nicht formatiert, size als Unterscheidung des Treatments
# leeren Rahmen zeichnen
plot_CT4 <- ggplot() + 
  coord_flip() +
  theme_classic() +
  theme(axis.text = element_text(size = 12), axis.title = element_text(size = 17)) +
  labs(title="", x = "", y = "CT (% dw)") +
  
  # Daten eintragen
  # SE-Bars
  stat_summary(data, fun.data = data_summary, position = pd1, geom = "errorbar", width = 0.05, mapping = aes(x = Location, y = CT, colour = Treatment)) + # SE-Bars
  stat_summary(data, fun.data = data_summary, position = pd1, geom = "point", size = 2,  mapping = aes(x = Location, y = CT, colour = Treatment, shape = Treatment)) + # Mittelwert-Punkte
  
  # Datenpunkte
  geom_jitter(data, height = 0, width = 0.2, alpha = 0.7, mapping = aes(x = Location, y = CT, color = Genotype, size = Treatment)) +
  
  guides(color = FALSE)
Dateianhänge
forum3.png
eimichae
Beiträge: 36
Registriert: Mo Okt 10, 2016 8:48 pm

Re: Datenpunkte in geom_point einfärben

Beitrag von eimichae »

Ich denke wir haben uns Misverstanden.
Bitte entschuldige.
Ich möchte farblich nach Genotyp unterscheiden und räumlich nach den 6 "Location.treatment" Gruppen (alle Komibinationen von "high", "mid" , "low" und "damage" und "control (im Datensatz sind diese 6 Gruppen als "Location.Treatment" angegeben)).

D.h. ich möchte die Struktur (aber nicht die Färbung) von meiner rot-schwarzen Figur beibehalten aber die einzelnen Datenpunkte nach "Genotyp" einfärben.
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Datenpunkte in geom_point einfärben

Beitrag von Hufeisen »

eimichae hat geschrieben: Fr Apr 05, 2019 7:13 pm Ich denke wir haben uns Misverstanden.
Bitte entschuldige.
Kein Problem, lag bestimmt an mir :D.

Meinst du so? Dann macht die Unterscheidung von Treatment per Symbol keinen Sinn mehr.

Code: Alles auswählen

# Korrekte Darstellung, aber die Legendenzeichen sind nicht formatiert, Location.Treatment auf x (bzw. y)
# leeren Rahmen zeichnen
plot_CT5 <- ggplot() + 
  coord_flip() +
  theme_classic() +
  theme(axis.text = element_text(size = 12), axis.title = element_text(size = 17)) +
  labs(title="", x = "", y = "CT (% dw)") +
  
  # Daten eintragen
  # SE-Bars
  stat_summary(data, fun.data = data_summary, position = pd1, geom = "errorbar", width = 0.05, mapping = aes(x = Location.Treatment, y = CT, colour = Treatment)) + # SE-Bars
  stat_summary(data, fun.data = data_summary, position = pd1, geom = "point", size = 2,  mapping = aes(x = Location.Treatment, y = CT, colour = Treatment, shape = Treatment)) + # Mittelwert-Punkte
  
  # Datenpunkte
  geom_jitter(data, height = 0, width = 0.2, alpha = 0.7, mapping = aes(x = Location.Treatment, y = CT, color = Genotype)) +
  
  guides(color = FALSE)
forum4.png
Antworten