gpt4 book ai didi

r - 改进的马赛克图(如热图或气泡)

转载 作者:行者123 更新时间:2023-12-04 10:54:09 24 4
gpt4 key购买 nike

我有两个因素,我正在制作一个交叉表。

x<-table(clean$VMail.Plan,clean$International.Plan)

我实际上想用图形表示它:

enter image description here

mosaicplot(x,data=clean,color=2:4,legend=TRUE,las = 1)

普通的马赛克图不是很吸引人,我不能使用 ggplot2 包使它更有吸引力。像热图或气泡之类的东西?

实际的列联表:

        No   Yes
No 27 239
Yes 243 2159

最佳答案

首先将数据 reshape 为长格式:

library(reshape2)
x <- melt(df)
names(x) <- c("iplan","vplan","value")

之后,您可以轻松地使用 geom_point 进行绘图:

library(ggplot2)
ggplot(x, aes(iplan, vplan)) +
geom_point(aes(size = value), alpha=0.8, color="darkgreen", show_guide=FALSE) +
geom_text(aes(label = value), color="white") +
scale_size(range = c(15,50)) +
theme_bw()

这给出了:

enter image description here

作为替代方案,您也可以考虑 geom_tile:

ggplot(x, aes(iplan, vplan)) +
geom_tile(aes(fill = value)) +
geom_text(aes(label = value), color="white") +
scale_x_discrete(expand = c(0,0)) +
scale_y_discrete(expand = c(0,0)) +
scale_fill_gradient("Legend label", low = "lightblue", high = "blue") +
theme_bw()

给出:

enter image description here

使用过的数据:

df <- structure(list(iplan = structure(1:2, .Label = c("No", "Yes"), class = "factor"), No = c(27L, 243L), Yes = c(239L, 2159L)), .Names = c("iplan", "No", "Yes"), class = "data.frame", row.names = c(NA, -2L))

关于r - 改进的马赛克图(如热图或气泡),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743004/

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