

Dear all,
I am trying to overlap two series of boxplots on the same graph. In
order to distinguish the outliers from one series to the other, would
be possible to colour the outliers?: instead of the standard black, is
it possible to give a chosen colour?
Thank you
>>>
This is the example. I could not generate not normally distributed
random values (even with runif), so I had to create the values
manually and they are still a bit rough (in the real thing, the two
series are more distant), anyway this should better explain the case.
Note that the three outliers at the bottom right belong to the 'blue'
distribution and the upper outlier on the right belongs to the 'green'
distribution, so making them in blue and green colours would make
clearer their positions.
# generate data.frames
A = c(70, 22, 4, 21, 29, 35, 24, 20, 9, 21,
22, 12, 20, 21, 13, 18, 15, 3, 9, 23,
6, 5, 2, 24, 25, 21, 16, 0, 4, 1)
B = c(17, 21, 70, 6, 23, 10, 8, 5, 22, 5,
21, 5, 19, 9, 23, 24, 11, 13, 7, 15,
25, 9, 13, 14, 11, 9, 12, 0, 5, 9)
C = c(17, 8, 30, 22, 11, 32, 33, 8, 160, 11,
35, 7, 36, 15, 11, 25, 16, 6, 38, 19,
35, 30, 12, 27, 22, 32, 47, 39, 31, 26)
D = c(79, 26, 8, 33, 59, 67, 60, 65, 54, 88,
78, 105, 59, 40, 109, 81, 28, 26, 94,
35, 10, 38, 58, 79, 58, 10, 5, 8, 4, 50)
E = c(98, 104, 101, 102, 97, 97, 97,
100, 97, 102, 100, 103, 104,
104, 99, 102, 100, 97, 102, 105,
99, 105, 100, 102, 100, 115,
112, 113, 111, 115)
G = c(105, 130, 97, 105, 113, 123,
149, 15, 134, 148, 98, 104,
113, 108, 209, 145, 138, 119,
142, 129, 298, 101, 136, 129,
148, 295, 125, 277, 107, 642)
X = rep(c(1, 3, 5),30*3)
dfA < data.frame(X, c(A, B, C))
dfB < data.frame(X, c(D, E, G))
names(dfA) < c("X", "Y")
names(dfB) < c("X", "Y")
# plot
boxplot(dfA$Y ~ dfA$X,
ylim=c(0, 200),
col="green",
ylab="Yvalues",
xlab="Xvalues"
)
par(new=TRUE)
boxplot(dfB$Y ~ dfB$X,
ylim=c(0, 200),
col="blue",
ylab="", xlab="",
xaxt="n", yaxt="n"
)

Best regards,
Luigi
______________________________________________
[hidden email] mailing list  To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Hi Luigi,
An easy way is to use "points" to overplot the outliers:
grbxp<boxplot(dfA$Y ~ dfA$X,
ylim=c(0, 200),
col="green",
ylab="Yvalues",
xlab="Xvalues"
)
points(grbxp$group,grbxp$out,col="green")
On Fri, Sep 28, 2018 at 7:51 PM Luigi Marongiu < [hidden email]> wrote:
>
> Dear all,
> I am trying to overlap two series of boxplots on the same graph. In
> order to distinguish the outliers from one series to the other, would
> be possible to colour the outliers?: instead of the standard black, is
> it possible to give a chosen colour?
> Thank you
>
> >>>
> This is the example. I could not generate not normally distributed
> random values (even with runif), so I had to create the values
> manually and they are still a bit rough (in the real thing, the two
> series are more distant), anyway this should better explain the case.
> Note that the three outliers at the bottom right belong to the 'blue'
> distribution and the upper outlier on the right belongs to the 'green'
> distribution, so making them in blue and green colours would make
> clearer their positions.
>
> # generate data.frames
> A = c(70, 22, 4, 21, 29, 35, 24, 20, 9, 21,
> 22, 12, 20, 21, 13, 18, 15, 3, 9, 23,
> 6, 5, 2, 24, 25, 21, 16, 0, 4, 1)
> B = c(17, 21, 70, 6, 23, 10, 8, 5, 22, 5,
> 21, 5, 19, 9, 23, 24, 11, 13, 7, 15,
> 25, 9, 13, 14, 11, 9, 12, 0, 5, 9)
> C = c(17, 8, 30, 22, 11, 32, 33, 8, 160, 11,
> 35, 7, 36, 15, 11, 25, 16, 6, 38, 19,
> 35, 30, 12, 27, 22, 32, 47, 39, 31, 26)
> D = c(79, 26, 8, 33, 59, 67, 60, 65, 54, 88,
> 78, 105, 59, 40, 109, 81, 28, 26, 94,
> 35, 10, 38, 58, 79, 58, 10, 5, 8, 4, 50)
> E = c(98, 104, 101, 102, 97, 97, 97,
> 100, 97, 102, 100, 103, 104,
> 104, 99, 102, 100, 97, 102, 105,
> 99, 105, 100, 102, 100, 115,
> 112, 113, 111, 115)
> G = c(105, 130, 97, 105, 113, 123,
> 149, 15, 134, 148, 98, 104,
> 113, 108, 209, 145, 138, 119,
> 142, 129, 298, 101, 136, 129,
> 148, 295, 125, 277, 107, 642)
> X = rep(c(1, 3, 5),30*3)
> dfA < data.frame(X, c(A, B, C))
> dfB < data.frame(X, c(D, E, G))
> names(dfA) < c("X", "Y")
> names(dfB) < c("X", "Y")
>
> # plot
> boxplot(dfA$Y ~ dfA$X,
> ylim=c(0, 200),
> col="green",
> ylab="Yvalues",
> xlab="Xvalues"
> )
> par(new=TRUE)
> boxplot(dfB$Y ~ dfB$X,
> ylim=c(0, 200),
> col="blue",
> ylab="", xlab="",
> xaxt="n", yaxt="n"
> )
>
>
> 
> Best regards,
> Luigi
>
> ______________________________________________
> [hidden email] mailing list  To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
______________________________________________
[hidden email] mailing list  To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.

