- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在下面的示例中,我有一个包含两个实验 F1 和 F2 的数据集。基于 F1 信号进行分类,并且 F1 和 F2 值都相应地排序。在此图中,尽管行数不同(e.g 类 #7 与其他类相比只包含很少的元素),但每个方面都具有相同的维度。我想修改代码以强制行高在各个方面相同(因此各个方面下面会有各种空白)。任何提示将不胜感激。谢谢
library(ggplot2)
library(reshape2)
set.seed(123)
# let's create a fake dataset
nb.experiment <- 4
n.row <- 200
n.col <- 5
nb.class <- 7
d <- matrix(round(runif(n.row * n.col),2), nc=n.col)
colnames(d) <- sprintf("%02d", 1:5)
# These strings will be the row names of each heatmap
# in the subsequent facet plot
elements <- sample(replicate(n.row/2, rawToChar(as.raw(sample(65:90, 6, replace=T)))))
# let's create a data.frame d
d <- data.frame(d,
experiment = sort(rep(c("F1","F2"), n.row/2)),
elements= elements)
# Now we split the dataset by experiments
d.split <- split(d, d$experiment)
# Now we create classes (here using hierarchical clustering )
# based on F1 experiment
dist.mat <- as.dist(1-cor(t(d.split$F1[,1:5]), method="pearson"))
hc <- hclust(dist.mat)
cuts <- cutree(hc, nb.class)
levels(cuts) <- sprintf("Class %02d", 1:nb.experiment)
# We split F1 and F2 based on classification result
for(s in names(d.split)){
d.split[[s]] <- split(d.split[[s]], cuts)
}
# Data are melt (their is perhaps a better solution...)
# in order to use the ggplot function
dm <- melt(do.call('rbind',lapply(d.split, melt)), id.var=c( "experiment", "elements", "variable", "L1"))
dm <- dm[, -5]
colnames(dm) <- c("experiment","elements", "pos", "class", "exprs")
dm$class <- as.factor(dm$class)
levels(dm$class) <- paste("Class", levels(dm$class))
# Now we plot the data
p <- ggplot(dm, aes(x = pos, y = elements, fill = exprs))
p <- p + geom_raster()
p <- p + facet_wrap(~class +experiment , scales = "free", ncol = 2)
p <- p + theme_bw()
p <- p + theme(text = element_text(size=4))
p <- p + theme(text = element_text(family = "mono", face = "bold"))
print(p)
最佳答案
使用 facet_grid
而不是 facet_wrap
并设置 space
属性:
ggplot(dm, aes(x = pos, y = elements, fill = exprs)) +
geom_raster() +
facet_grid(rowMeanClass ~ experiment , scales = "free", space = "free_y") +
theme_bw()
关于r - 带有 ggplot2 的 geom_raster 多面图 : control row height,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32728421/
我有一个 R/ggplot2似乎需要 geom_raster 的用例:在 x、y 位置具有 z 值的常规笛卡尔网格。我一直在使用geom_tile ,并且我预计切换到 geom_raster 会提高性
这个问题在这里已经有了答案: When using ggplot in R, how do I remove margins surrounding the plot area? (4 个回答) 5年
我正在尝试使用 geom_raster 绘制光栅图像(海洋测深),但我很难破解代码。如果有任何帮助,我将不胜感激。 我已经下载了以下 xyz file (投递箱链接)。 SF.bath head(S
我正在使用 R 来求解 R 中具有两个变量的方程。我通过一个序列来改变这两个变量,然后使用带有插值的 geom_raster 来生成解图。 但是,当我绘制数据时,我注意到绘图区域超出了我作为输入提供的
我正在尝试使用 geom_raster() 比较三个地 block 。问题是我想在第一个绘图 [-3,3] 中设置的所有三个绘图中保持相同的比例。 这是我的代码: #raster plots box
我对geom_raster函数中反复出现的大小向量无法分配问题感到惊讶。这个问题发生在小数据集上,在我的例子中,有 1559 个观察值。我尝试这样做: # Read the raster in dat
我在用对数刻度绘制栅格时有点卡住了。以这个图为例: ggplot(faithfuld, aes(waiting, eruptions)) + geom_raster(aes(fill = densi
我对geom_raster函数中反复出现的大小向量无法分配问题感到惊讶。这个问题发生在小数据集上,在我的例子中,有 1559 个观察值。我尝试这样做: # Read the raster in dat
我一直在尝试使用 ggplots/reshape2 和这样的代码生成二维矩形图: library(reshape2) library(ggplot2) m <- matrix( c('SNV', 'S
我正在尝试根据具有三个变量的数据绘制热图。我将 ggplot 与 geom_raster 一起使用,但似乎不起作用。我看不出出了什么问题。 library(tidyverse) p % ggplot
假设我有一个像这样的 data.frame: df <- matrix( rnorm(100), nrow = 10) rownames(df) <- LETTERS[1:10] molten <-
我有一个非常简单的问题,但我一直在努力在线寻找答案。 我有一个用ggplot + geom_raster制作的热图。我想在每个矩形内插入一个符号,这样它们就可以传达另一条信息。为此,我想到使用geom
我正在寻找一种在小比例 map 上绘制栅格数据的方法(使用 ggplot 和 geom_raster )。我想使用ggalt和coord_proj '放大'形状文件的特定区域,但我遇到错误 geom_
我有一个非常简单的问题,但我一直在努力在线寻找答案。 我有一个用ggplot + geom_raster制作的热图。我想在每个矩形内插入一个符号,这样它们就可以传达另一条信息。为此,我想到使用geom
是否可以在 geom_raster 中更改插值级别(例如平滑、模糊)? ? library(tidyverse) mtcars %>% group_by(carb, hp = cut(mtcars
我在加利福尼亚州南部有一个数据集(纬度、经度、值),我可以使用 ggplot(见下文)绘制它。纬度范围从 31.5 到 35.5,经度范围从 -121 到 -113。 ggplot map 看起来不错
我有以下数据框: id variable value ID1 1A 91.98473282 ID1 2A 72.51908397 ID1 2B
我正在处理一些时频分解的 EEG 数据,并希望使用 ggplot2 生成类似频谱图的图形。但是,我最终在每个时间点之间都有空白。 Data <- read.csv(url("https://www.d
在下面的示例中,我有一个包含两个实验 F1 和 F2 的数据集。基于 F1 信号进行分类,并且 F1 和 F2 值都相应地排序。在此图中,尽管行数不同(e.g 类 #7 与其他类相比只包含很少的元素)
我是一名优秀的程序员,十分优秀!