Lattice segplot + panel.xblocks

Senhores, Estou tentando fazer um gráfico usando a segplot()... até aí tudo perfeito! Entretanto gostaria de "hachurar" uma área do background do gráfico e tentei de várias formas, mas não consegui! O problema reside é que cada painel terá uma área diferente para hachurar. Procurei e achei as funções panel.xblocks() e pane.rect(). Acho que o caminho é por aí! Gostaria da ajuda de vocês para tentar implementar isso... segue o CMR: dados <- dput(dados) structure(list(fator = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("a", "b"), class = "factor"), tratamento = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L), media = c(56.7273408697765, 21.6789539145706, 48.9147297325716, 16.128713312085, 72.2770042662147, 76.4078177803679, 50.9077623429051, 73.4185754594888, 6.10335920092642, 55.0889792680129, 73.2888965805648, 42.4138621293343, 61.1580652843309, 60.6674652959473, 61.985833396912, 59.1674199053476, 64.5810153586145, 49.9847839597647, 43.5403475266414, 73.2055926430283, 78.0443736554009, 29.0590364242541, 67.0013026876617, 21.7957799074036, 94.6993295797361, 97.3586875521169, 70.5384358034064, 84.0236784048615, 6.13251698933115, 72.2706008690223, 95.925565877041, 56.3692012642583, 79.8817867665571, 78.7296774114649, 78.3993769394509, 76.0775293205963, 80.0321741107855, 66.4321920049995, 54.1984087410355, 98.1778312021352), inferior = c(43.1836043224278, 17.1528746401404, 37.1996905806528, 12.9475504916982, 46.7714226580457, 45.3692479773409, 39.7789554679844, 29.8329460853507, 2.56413580548224, 35.8089238584928, 47.4171926197379, 29.7410223171652, 39.6810438781391, 38.6961342195907, 37.1835630240529, 37.067425724059, 35.4724912266013, 35.2427573484592, 25.0802453164008, 51.397401326238, 67.626248555891, 18.7695537973605, 56.7158673051006, 14.4447744494442, 85.018794282225, 86.9126759092797, 60.2303195514873, 71.7768506217856, 0.319225404377661, 64.8335865483444, 85.7060969685811, 47.3588023848516, 70.3807330972353, 68.9839724287896, 65.9920666691623, 65.2925804505429, 69.4612476374327, 55.1810503876307, 44.5545294532709, 86.576660755252), superior = c(62.3108540885626, 23.8615642963601, 53.7260587383325, 17.774181934749, 79.7146304606838, 84.9807494296331, 55.9924261554983, 86.5989631071634, 7.15646923884448, 60.7368137544209, 80.8316127544867, 46.572404145686, 67.4355492078165, 66.989163863718, 68.859173168856, 65.4348577926561, 72.5430140364942, 54.8771182917571, 48.6009761134763, 80.3851368007263, 87.1231257331536, 38.7305442725622, 76.1037592450441, 28.7278361811028, 102.689316368094, 106.025905852459, 79.6868529319033, 94.2065097903592, 11.6427132483976, 78.4162162468943, 104.39108823494, 64.3280982909318, 87.9131833084866, 86.9760720156632, 89.0620270643251, 85.2808640058557, 88.7701994563184, 76.4111720930247, 62.5587781906989, 107.948178577293)), .Names = c("fator", "tratamento", "media", "inferior", "superior"), row.names = c(NA, -40L), class = "data.frame") segplot(reorder(tratamento, media) ~ inferior + superior | fator, data = dados, centers = media, draw.bands = FALSE, segments.fun = panel.arrows, ends = 'both', angle = 90, length = 1, unit = 'mm', panel = function(x, y, z, centers, subscripts, ...) { panel.segplot(x, y, z, centers = centers, subscripts = subscripts, ...) }) Minha intenção é que o backgrund de cada painel tenha uma área preenchida de vermelho, por exemplo, mas cada intervalo é diferente por painel... acho que a única forma é informar essas áreas externamente, com outr data.frame, seja por exemplo: dadosAUX <- dput(dadosAUX) structure(list(fator = structure(1:2, .Label = c("a", "b"), class = "factor"), xleft = c(30, 50), xright = c(60, 80)), .Names = c("fator", "xleft", "xright"), row.names = c(NA, -2L), class = "data.frame") Assim... em cada painel, preciso que essa área seja preenchida por toda extensão do eixo Y. Qualquer ajuda é bem vinda. Obrigado a todos! Boa semana e que venha Dezembro! att, FH

Tenta assim Fernando, segplot(reorder(tratamento, media)~inferior+superior|fator, data=dados, centers=media, draw.bands=FALSE, segments.fun=panel.arrows, ends='both', angle=90, length=1, unit='mm', panel=function(x, y, z, centers, subscripts, ...) { wp <- which.packet() panel.rect(dadosAUX[wp,"xleft"], min(as.numeric(z))-1, dadosAUX[wp,"xright"], max(as.numeric(z))+1, fill=rgb(0.5,0.5,0.5,0.7), border=FALSE) panel.segplot(x, y, z, centers=centers, subscripts=subscripts, ...) }) À disposição. Walmes.

Valeu Walmes... na médida! Obrigado! On 2 December 2013 07:51, walmes . <walmeszeviani@gmail.com> wrote:
Tenta assim Fernando,
segplot(reorder(tratamento, media)~inferior+superior|fator, data=dados, centers=media, draw.bands=FALSE, segments.fun=panel.arrows, ends='both', angle=90, length=1, unit='mm', panel=function(x, y, z, centers, subscripts, ...) { wp <- which.packet() panel.rect(dadosAUX[wp,"xleft"], min(as.numeric(z))-1, dadosAUX[wp,"xright"], max(as.numeric(z))+1, fill=rgb(0.5,0.5,0.5,0.7), border=FALSE) panel.segplot(x, y, z, centers=centers, subscripts=subscripts, ...) })
À disposição. Walmes.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
participantes (2)
-
FHRB Toledo
-
walmes .