Bir treemap oluşturmak için R ve 'portfolyo' kütüphanesini kullanıyorum. Ölçek '-1000 ila 1000' olarak ayarlanmıştır. Örneğin, 0 ile 1000 arasında olması gerekir. Map.market() için bir 'ölçek' parametresi olduğunu biliyorum, ancak ona neyin geçeceğini anlayamıyorum.Skaladaki bir treemaptaki ('portföy' kütüphanesini kullanarak) ölçeği nasıl düzenler/kontrol edersiniz?
5
A
cevap
3
sıfır etrafında bir simetrik renk eşleme sabit map.market
içine kodlanır:
legend.ncols <- 51
l.x <- (0:(legend.ncols - 1))/(legend.ncols)
l.y <- unit(0.25, "npc")
l.cols <- color.ramp.rgb(seq(-1, 1, by = 2/(legend.ncols -
1)))
if (is.null(scale)) {
l.end <- max(abs(data$color.orig))
}
else {
l.end <- scale
}
ve
top.list <- gList(textGrob(label = main, y = unit(0.7, "npc"),
just = c("center", "center"), gp = gpar(cex = 2)), segmentsGrob(x0 = seq(0,
1, by = 0.25), y0 = unit(0.25, "npc"), x1 = seq(0, 1,
by = 0.25), y1 = unit(0.2, "npc")), rectGrob(x = l.x,
y = l.y, width = 1/legend.ncols, height = unit(1, "lines"),
just = c("left", "bottom"), gp = gpar(col = NA, fill = l.cols),
default.units = "npc"), textGrob(label = format(l.end *
seq(-1, 1, by = 0.5), trim = TRUE), x = seq(0, 1, by = 0.25),
y = 0.1, default.units = "npc", just = c("center", "center"),
gp = gpar(col = "black", cex = 0.8, fontface = "bold")))
Not seq(-1,1,...)
tabloların varlığı. scale
parametresi yalnızca mutlak boyutu etkiler.
+1
Sadece benim gibi, yukarıdaki ipucu ile ne yapacağını anlamayanlar için açıklık getirmek için: R konsolunda "map.market" yazın, çıktıyı kopyalayın ve "seq (-1, 1" ile yeniden yazın) İhtiyacınız olan şey, daha sonra bu işlevi kodunuza yapıştırın ve orijinal 'map.market()' yerine çalıştırın. Diğer parametreler de değiştirilebilir. –
Sorununuzu gösteren, tekrarlanabilir bir örnek sağlayabilir misiniz? – joran