gpt4 book ai didi

r - 将每个矩阵列转换为子矩阵并循环遍历每个子矩阵进行绘图

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

我有一个包含以下因素的数据框:

rss<-c("rs","total","rs","total","total","total","rs","rs")
css<-c("G","S","S","Q","Q","Q","G","G")
batch<-c("5","6","6","7","7","8","7","5")
dat<-data.frame(rss,css,batch)

我想为每列绘制上述数据框的数字矩阵,即将 8*3 矩阵按列转换为 3,4*2 子矩阵。这样我就可以遍历并绘制子矩阵数据。
newdat<-data.matrix(dat)
split.dat<-split(newdat,col(newdat))
par(mfrow=c(1,3))
for(i in split.dat){image(array(i,c(4,2)))}

有没有更好的方法来做同样的事情?除了 image 之外,对于绘制此类数据的任何建议也将不胜感激。

最佳答案

我认为这可以解决您的 ggplot2 问题。但是,您的数据采用奇怪的格式,并且不清楚为什么应该按照您描述的方式绘制它们。在我看来,缺少一些变量,特别是对应于 row 的变量。和 colnewdat我正在创建的数据框。我建议您阅读 tidy data paper通过哈德利威克姆。

require(tidyr)
require(dplyr)
require(ggplot2)

rss<-c("rs","total","rs","total","total","total","rs","rs")
css<-c("G","S","S","Q","Q","Q","G","G")
batch<-c("5","6","6","7","7","8","7","5")
dat<-data.frame(rss,css,batch)

# convert into tidy data frame
dat %>% mutate(col=c(rep(1,4), rep(2,4)), row=c(1:4, 1:4)) %>%
gather(key, value, rss:batch) -> newdat

# plot
ggplot(newdat, aes(x=col, y=row, fill=value)) +
geom_tile() +
facet_wrap(~key) +
scale_x_discrete(breaks=c(1,2), limits=c(1,2)) +
theme_bw()

结果:

enter image description here

关于r - 将每个矩阵列转换为子矩阵并循环遍历每个子矩阵进行绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31236585/

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