Girish A.R.
2010-Dec-09 06:35 UTC
[R] [lattice xyplot] Help needed in help in customizing the panel.abline() function
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.
Girish A.R.
2010-Dec-09 06:48 UTC
[R] [lattice xyplot] Help needed in help in customizing the panel.abline() function
Sorry, just realized that there was a typo in the following code of my
original post. The correct code is as shown below (corrected
'data=swtop16'
to 'data=DF'):
sales <- xyplot(pct_inv_left ~ week_num|sku_num, data=DF,type
"l",lwd=2,panel = function(...) {
panel.abline(h = 75, lty = 2)
panel.xyplot(...)
})
Thanks,
-Girish
--
View this message in context:
http://r.789695.n4.nabble.com/lattice-xyplot-Help-needed-in-help-in-customizing-the-panel-abline-function-tp3079656p3079666.html
Sent from the R help mailing list archive at Nabble.com.
Dieter Menne
2010-Dec-09 07:34 UTC
[R] [lattice xyplot] Help needed in help in customizing the panel.abline() function
-- View this message in context: http://r.789695.n4.nabble.com/lattice-xyplot-Help-needed-in-help-in-customizing-the-panel-abline-function-tp3079656p3079697.html Sent from the R help mailing list archive at Nabble.com.
Felix Andrews
2010-Dec-10 11:33 UTC
[R] [lattice xyplot] Help needed in help in customizing the panel.abline() function
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/
Girish A.R.
2010-Dec-10 11:38 UTC
[R] [lattice xyplot] Help needed in help in customizing the panel.abline() function
Thanks, Felix! That works. best, -Girish -- View this message in context: http://r.789695.n4.nabble.com/lattice-xyplot-Help-needed-in-help-in-customizing-the-panel-abline-function-tp3079656p3081792.html Sent from the R help mailing list archive at Nabble.com.