Я пытаюсь использовать ggplot
, чтобы создать псевдо-boxplot
с помощью цвета/прозрачности, но немного борюсь. Идея заключается в том, что для любой точки на оси x, чем больше число раз имеет значение y, тем темнее будет (x, y) точка. Чтобы добавить к усложнению, у меня нет счета для каждого (x, y), но вместо этого у меня есть счет для (x , ymin:ymax)
, что означает, что этот счетчик выполняется для всех точек между (x, ymin) и (x, ymax)Color Code Boxplot
Searching, кажется, немного сложнее, и я "м не удалось раскопать все, что я могу использовать. ближайший я мог бы получить сам был ниже, однако это занимает очень много времени для больших наборов данных.
library(ggplot2)
set.seed(1)
(d <- data.frame(cbind(x = sample(1:3, 10, replace = TRUE), y = sample(3:8, 10, replace = TRUE)), fac = sample(1:3, 10, replace = TRUE)))
p1 <- ggplot()
for (i in seq(nrow(d)))
{
p1 <- p1 + geom_rect(
data=d[i,],
aes(
xmin = fac - .4,
xmax = fac + .4,
ymin = x,
ymax = y),
alpha = .25
)
}
Какие-либо предложения? Я бы предпочел решение ggplot
. Thanks
Обновление от 23 ноября 13, С помощью Троя я добрался здесь. Единственные проблемы теперь в том, что легенда находится между значениями t для каждого прямоугольника, тогда как она должна варьироваться от кумулятивного t по x, y.
library(ggplot2)
set.seed(1)
d <- data.frame(cbind(x = sample(1:3, 6, replace = TRUE),
ymin = sample(3:8, 6, replace = TRUE),
ymax = sample(3:8, 6, replace = TRUE),
t = sample(3:8, 6, replace = TRUE)/10
))
ggplot(data=d) +
geom_rect(aes(xmin=x-0.4,xmax=x+0.4,ymin=ymin,ymax=ymax,alpha=t),fill="red")
Может добавить ковер участок к краям участка? http://stackoverflow.com/questions/11546256/two-way-density-plot-combined-with-one-way-density-plot-with-selected-regions-in – amzu