我正在尝试用这个气泡图做一些事情。
p<-ggplot(Dataframe, aes(x = Confidence, y = Knowledge)) + geom_count(aes(color = after_stat(n), size=after_stat(n))) +guides(color = 'legend') + labs(x="Confidence", y="Knowledge") + theme(axis.title = element_text(size = (15), colour = "black"),
axis.text = element_text(colour = "black", size = (12)))
之前,我尝试过这个:
我只能将气泡设为一种颜色(但无论我想要什么颜色 - 只是不超过 1),但气泡可以做得更大:
p<-ggplot(Dataframe, aes(x = Confidence, y = Knowledge)) + geom_count(color="blue") + scale_size(range= c(1,20), name = "Co-occurring")+ labs(x="Confidence", y="Knowledge") + theme(axis.title = element_text(size = (15), colour = "black"),
axis.text = element_text(colour = "black", size = (12)))
您可以使用
geom_text
添加带有 stat = "sum"
的计数标签。气泡的大小通过 range
的 scale_size_continuous
参数进行更改。对于带标签的气泡图,我倾向于使用 shape = 21
来表示气泡,并通过填充美感来控制它们的颜色。可以使用 scale_fill_gradientn
选择的任何颜色来指定。要更改图例上的名称,请将与第一个参数相同的名称添加到填充和尺寸比例中。
顺便说一句,x 轴和 y 轴上的项目顺序是错误的。您需要通过将知识和信心转换为具有正确水平的因素来解决此问题:
library(tidyverse)
Dataframe %>%
mutate(across(any_of(c("Confidence", "Knowledge")),
~ factor(.x, c("Not at all", "A little", "Somewhat",
"Very", "Extremely")))) %>%
ggplot(aes(x = Confidence, y = Knowledge)) +
geom_count(aes(fill = after_stat(n), size = after_stat(n)), shape = 21) +
geom_text(stat = "sum", aes(label = after_stat(n)), size = 5) +
scale_fill_gradientn("Observations", guide = "legend",
colors = c("pink", "white", "lightblue")) +
scale_size_continuous("Observations", range = c(6, 15)) +
theme_minimal(base_size = 5 * .pt)
使用的数据
如果没有可重现的数据,我不得不构建一个与您自己的名称和基本结构相同的随机数据集:
set.seed(123)
Dataframe <- data.frame(Confidence = sample(c("A little",
"Somewhat",
"Very",
"Extremely"), 100, TRUE),
Knowledge = sample(c("Not at all",
"A little",
"Somewhat",
"Very",
"Extremely"), 100, TRUE))