我真的很喜欢气球图用网格生成气球图的方式,而且它保留了值为零的单元格,但没有显示圆。下面是一个例子,
dt <- as.table(as.matrix(mtcars[1:10,]))
balloonplot(t(dt), xlab ="", ylab="", label = FALSE, show.margins = FALSE, cum.margins=F)当我试图在ggplot中生成它的时候,它是一片混乱,因为我不能正确地显示网格,而且带零的单元格显示为点而不是空白。
ggplot(melt(dt), aes(x =X2, y = X1)) +geom_point( aes(size=value),shape=21, colour="black", fill="skyblue")有没有办法用ggplot来绘制这个图,或者将gplot保存为ggplot对象?我之所以需要一个ggplot对象,是因为我计划使用pathwork将其粘贴为一个更大的整体图形。
# this fails
as.ggplot(balloonplot(t(dt), xlab ="", ylab="", label = FALSE, show.margins = FALSE))谢谢!

发布于 2020-09-29 11:36:23
我能得到的最接近的是ggpubr气球图--这能满足你的需求吗?
library(tidyverse)
#install.packages("ggpubr")
library(ggpubr)
mtcars[1:10,] %>%
ggballoonplot(size.range = c(-0.5,10), rotate.x.text = FALSE,
ggtheme = theme_minimal(base_size = 14)) +
ggtitle(label = "Balloon Plot for x by y",
subtitle = "Area is proportional to Frequency") +
scale_x_discrete(position='top') +
theme(panel.grid.major = element_blank(),
axis.text.x = element_text(size = 14),
plot.title.position = "plot",
plot.title = element_text(face = "bold"),
plot.subtitle = element_text(face = "bold"),
axis.ticks = element_blank()) +
geom_tile(color = "black", fill = "transparent")

发布于 2020-09-29 11:43:31
这个怎么样?
library(tidyverse)
dt2 <- as.data.frame(as.matrix(mtcars[1:10,]))
dt2 %>%
rownames_to_column("Car") %>%
gather(Variable, Value, -Car) %>%
ggplot(aes(x = Variable, y = Car, size = Value)) +
geom_point(colour = "sky blue") +
scale_size_continuous(range = c(-1, 10)) +
labs(title = "Balloon Plot for x by y",
subtitle = "Area is proportional to Freq.",
x = "",
y = "") +
theme_bw()

https://stackoverflow.com/questions/64111932
复制相似问题