[R] Color-coding data points in complex dotplot (ggplot2)

Michael Eisenring m|ch@e|@e|@enr|ng @end|ng |rom gmx@ch
Sat Apr 6 22:09:32 CEST 2019


Hi John,
Thanks for this informantion.
Attached are the figures in a single PDF

Mike

-----Ursprüngliche Nachricht-----
Von: John Kane [mailto:jrkrideau using gmail.com] 
Gesendet: Samstag, 6. April 2019 07:23
An: Michael Eisenring <michael.eisenring using gmx.ch>
Cc: R. Help Mailing List <r-help using r-project.org>
Betreff: Re: [R] Color-coding data points in complex dotplot (ggplot2)

HI Michael
Your code runs but we did not get any attached figure.  You might want to try sending it as a .pdf file. They usually make it through the spam filters

On Sat, 6 Apr 2019 at 08:09, Michael Eisenring <michael.eisenring using gmx.ch> wrote:
>
> Dear R-List members,
>
> I produced a dot plot (see attachment 1) on 6 different treatments 
> (trees under 6 different conditions; in column " Location.Treatment " 
> in my raw data). For each of these " Location.treatment" categories, I 
> calculated a mean value and the SE for a specific compound (%CT).
>
> I am able to produce a plot where all the 6 treatments (in column "
> Location.Treatment") are separated (see code and Fig. 1) so that each 
> of two "con" and "exp" treatments (in the column "treatment") are 
> nested within one of the three locations (High, mid, low; in the 
> column "Location") (see plot that the code produces). This is the plot structure I want.
>
> Now I would like to assign colors to the raw data points ( the "point cloud"
> next to each mean +SE value). Each of these points stems from a 
> different "Genotype" and I would like to color code the points with 
> regard to the genotypes (e.g. all points from Genotype A should be 
> green, all points from Genotype B should be red etc.) I would like to 
> use my own specified colors in the code (not the standard palette).
>
> I tried did the following (without success)
>
> 1.      I added "aes(color=Genotype,.." into "geom_point(..)"
>
> 2.      I added my specific colors to "scale_color_manual"
>
> scale_color_manual(labels=c("Control","Damaged"),values=c("red","black
> ","#06 
> 7c43","#89b651","#dc5b09","#e4a710","#92c5de","grey","#1d71b4","#7873a3"....
> ..
>
>
>
> However, if I do that my "nested" plot structure disappears (i.e. I 
> cannot visually differentiate between "con" and "exp" treatments 
> nested within mid /high/. See Fig. 2)
>
> Basically, all I want is to produce a plot that looks like the one 
> from my actual code( Fig.1) but where the individual data points are 
> colored according to "Genotypes"
>
> Below is my code and my raw data.
>
> Help is very much appreciated!
>
> Thanks a lot,
>
> Mike
>
>
>
> #CODE-----------------------------------------------------
>
> 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
>
>
>
> #DATA-----------------------------------------------------------------
> ------
> -----------------
>
> 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")
>
>
>
>
>
>
>
>
>
>
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see 
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



--
John Kane
Kingston ON Canada

-------------- next part --------------
A non-text attachment was scrubbed...
Name: FIG 1 and FIG 2.pdf
Type: application/pdf
Size: 252813 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20190406/95b5c29b/attachment.pdf>


More information about the R-help mailing list