gpt4 book ai didi

r - ggvis 中带有数字的热图

转载 作者:行者123 更新时间:2023-12-02 04:56:52 27 4
gpt4 key购买 nike

我正在尝试使用 ggvis 中 ggplot2 中的数字复制热图。ggplot2版本是

library(ggplot2)
hec <- as.data.frame(xtabs(Freq ~ Hair + Eye, HairEyeColor))
ggplot(hec, aes(Hair, Eye)) +
geom_tile(aes(fill = Freq)) +
geom_text(aes(label = Freq),colour="white")

看起来就像这样 enter image description here

我的 ggvis 版本是

hec%>%
ggvis(~Hair, ~Eye, fill=~Freq)%>%
layer_rects(width = band(), height = band()) %>%
layer_text(text:=~Freq,fontSize := 20, fill:="white",baseline:="top",align:="center") %>%
scale_nominal("x", padding = 0, points = FALSE) %>%
scale_nominal("y", padding = 0, points = FALSE)

结果并不完美

enter image description here

我尝试通过手动添加边距来修复数字对齐,但这种情况无法调整大小。

有什么想法吗?

最佳答案

一种解决方法是使用 xcenterycenter 比例:

hec <- as.data.frame(xtabs(Freq ~ Hair + Eye, HairEyeColor))

hec%>%
ggvis(~Hair, ~Eye, fill=~Freq) %>%
layer_rects(width = band(), height = band()) %>%
layer_text(
x = prop("x", ~Hair, scale = "xcenter"),
y = prop("y", ~Eye, scale = "ycenter"),
text:=~Freq, fontSize := 20, fill:="white", baseline:="middle", align:="center") %>%
scale_nominal("x", padding = 0, points = FALSE) %>%
scale_nominal("y", padding = 0, points = FALSE) %>%
scale_nominal("x", name = "xcenter", padding = 1, points = TRUE) %>%
scale_nominal("y", name = "ycenter", padding = 1, points = TRUE)

关于r - ggvis 中带有数字的热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24701419/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com