gpt4 book ai didi

r - 在 R 中创建热图?

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

这是我的 rfm_table 数据框:

 UserID    R F      M Rsegment Fsegment Msegment Total_Score
1 10609 984 3 318.78 2 4 4 244
2 10922 648 1 184.26 5 2 3 523
3 11300 1022 1 91.02 2 2 2 222
4 11400 864 5 851.73 3 5 5 355
5 11487 797 1 147.22 3 2 3 323
6 11762 1042 1 32.31 1 2 1 121

我想使用 R(Recency)、F(Frequency) 和 M(Monetary) 列创建一个热图,就像下面的这张图片 enter image description here

我使用了“plotly”包并在下面编写了此代码但收到此错误
# minimal value for n is 3, returning requested palette with 3 different levels
plot_ly(z = rfm_table[,c(5,6,4)]
x = c("1","2","3","4","5"), y =c("1","2","3","4","5"),
type = "heatmap")

谁能解释一下我该怎么办?

最佳答案

我从未使用过包 情节或其任何功能。这是替代解决方案,包括最适合我的解决方案(来自包格)。

原始数据(顺便说一句,如果您提供了这样的测试数据,而不仅仅是像上面那样的打印输出,那将非常有帮助......)

d1 <- data.frame(UserID = factor(rep(paste("id", 1:10), 50, sep = "")),
RR = factor(rep(1:5, 100)),
FF = factor(rep(1:5, each = 100)),
MM = round(1000*rnorm(500), 2))
table(d1$R, d1$F)

# Means of groups, long format
d.l <- aggregate(x = d1$M,
by = list(RR = d1$RR,
FF = d1$FF),
FUN = mean)

# Same data, wide format
d.w <- reshape(data = d.l,
idvar = "RR",
timevar = "FF",
direction = "wide")
mm <- as.matrix(d.w[, -1])
colnames(mm) <- 1:5

使用颜色键绘制热图
选项 1:使用默认值 热图 功能
heatmap(mm,
Rowv = NA,
Colv = NA,
xlab = "FF",
ylab = "RR",
main = "XXX")

enter image description here

您可以使用图例添加键,但这需要一些工作。

选项 2(我最喜欢的):使用 格子包裹
require(lattice)
levelplot(mm,
xlab = "FF",
ylab = "RR",
main = "XXX",
col.regions = heat.colors)

enter image description here

选项 3:使用包 gplots
require(gplots)
heatmap.2(mm,
Rowv = F,
Colv = F,
density.info = "none",
trace = "none",
xlab = "FF",
ylab = "RR",
main = "XXX")

enter image description here

选项 4:使用 ggplots
我不会写那个代码,但你可以看到它 here .

关于r - 在 R 中创建热图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301152/

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