Вы можете достаточно легко получить график полускрипки с помощью довольно простых модификаций функции panel.violin
в пакете решетки Саркара. В этой функции есть четыре строки, которые можно изменить внутри вызова grid.polygon
, чтобы перейти от «двухстороннего» графика плотности к одностороннему графику плотности. Первые require(lattice)
и require(grid)
. Затем введите panel.violin
. Покажу вам "горизонтальную" переделку:
require(grid)
panel.violin2 <-
# snipped all the arguments and processing
grid.polygon(x = c(dx.list[[i]] ),
# Notice I removed: ... ,rev(dx.list[[i]])
y = c(2*dy.list[[i]] ), default.units = "native",
# Removed: ... , -rev(dy.list[[i]])
name = trellis.grobname(identifier, type = "panel",
group = group), gp = gpar(fill = col, col = border,
lty = lty, lwd = lwd, alpha = alpha))
Также удалите его из соответствующего раздела в предложении else{...}. Теперь вы можете запустить его с помощью примера в справке (panel.violin)
bwplot(voice.part ~ height, singer,
panel = function(..., box.ratio) {
panel.violin2(..., col = "transparent",
varwidth = FALSE, box.ratio = box.ratio)
panel.bwplot(..., fill = NULL, box.ratio = .1)
} )
Если вам нужна плотность на другой стороне, все, что вам нужно сделать, это удалить dx.list[[i]] и dy.list[[i]] и оставить rev(dx.list[[i]])
и -rev(dy.list[[i]])
.
person
IRTFM
schedule
13.12.2012
beanplot
, и даже приводится код для этого. - person MattLBeck   schedule 13.12.2012singer
, в частности на столбецvoice.part
. - person BenBarnes   schedule 13.12.2012