[R] [lattice xyplot] Help needed in help in customizing the panel.abline() function
Felix Andrews
felix at nfrac.org
Fri Dec 10 12:33:11 CET 2010
Hi Girish,
Try this:
disc <- xyplot(cnt_gt50pct_disc ~ week_num|sku_num, data=DF,type =
"h",lwd=2,panel = function(x, y, ...) {
panel.abline(v = x[which.max(y)], lty = 2)
panel.xyplot(x, y, ...)
})
-Felix
On 9 December 2010 17:35, Girish A.R. <garamach at gmail.com> wrote:
>
> Hi folks,
>
> I need some help in customizing the abline() function to be used in a
> lattice plot. I have attached a reproducible example below.
>
> I need help in the following snippet:
> disc <- xyplot(cnt_gt50pct_disc ~ week_num|sku_num, data=DF,type =
> "h",lwd=2,panel = function(...) {
> panel.abline(v = 8, lty = 2)
> panel.xyplot(...)
> })
>
> Is there a way I can give panel.abline() input from a which.max() function?
> Essentially I need the vertical line to be drawn at the week_num
> corresponding to the max (cnt_gt50pct_disc).
>
> Thanks in advance,
>
> -Girish
>
> ===========================================
> Lines <- "sku_num week_num pct_inv_left cnt_gt50pct_disc
> 1 1 99.88 47
> 1 2 99.54 109
> 1 3 98.7 260
> 1 4 97.83 202
> 1 5 96.53 389
> 1 6 94.11 450
> 1 7 90.42 459
> 1 8 86.63 448
> 1 9 83.39 411
> 1 10 77 478
> 1 11 71.65 476
> 1 12 67.3 463
> 1 13 62.45 472
> 1 14 52.47 488
> 1 15 40.86 486
> 1 16 31.34 484
> 1 17 23.2 472
> 1 18 17 458
> 1 19 12.66 423
> 1 20 10.18 364
> 1 21 7.6 343
> 1 22 3.09 343
> 1 23 1.05 211
> 2 1 99.94 30
> 2 2 99.4 151
> 2 3 98.85 146
> 2 4 97.92 274
> 2 5 97.03 204
> 2 6 95.59 378
> 2 7 92.81 452
> 2 8 89.07 470
> 2 9 85.11 454
> 2 10 81.68 421
> 2 11 75.34 479
> 2 12 70.05 476
> 2 13 66.11 456
> 2 14 61.85 465
> 2 15 53.2 485
> 2 16 42.75 486
> 2 17 33.58 481
> 2 18 25 477
> 2 19 18.13 450
> 2 20 12.97 416
> 2 21 10.03 343
> 2 22 7.03 293
> 2 23 2.33 283
> 2 24 0.77 116
> "
>
> DF <- read.table(con<- textConnection(Lines), skip = 1);
> names(DF) <- scan(textConnection(Lines), what = "", nlines = 1) ;
> close(con);
>
> require(latticeExtra)
> DF$sku_num <- as.factor(DF$sku_num)
> disc <- xyplot(cnt_gt50pct_disc ~ week_num|sku_num, data=DF,type =
> "h",lwd=2,panel = function(...) {
> panel.abline(v = 8, lty = 2)
> panel.xyplot(...)
> })
> sales <- xyplot(pct_inv_left ~ week_num|sku_num, data=swtop16,type =
> "l",lwd=2,panel = function(...) {
> panel.abline(h = 75, lty = 2)
> panel.xyplot(...)
> })
> doubleYScale(disc, sales, style1 = 0, style2 = 2, add.ylab2 = TRUE,text =
> c("# stores with gt 50pct disc", "% Unsold"))
> --
> View this message in context: http://r.789695.n4.nabble.com/lattice-xyplot-Help-needed-in-help-in-customizing-the-panel-abline-function-tp3079656p3079656.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
>
--
Felix Andrews / 安福立
http://www.neurofractal.org/felix/
More information about the R-help
mailing list