- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图显示对 2 个调查问题的响应的密度和相关性。每个问题的答案都是因素 1-5,我想制作一个响应组合表的热图。
我的表格是这样的:
> table(mydata$v47, mydata$v78)
1 2 3 4 5
1 2 0 0 0 0
2 0 2 2 0 0
3 5 7 8 3 0
4 12 11 14 7 1
5 1 1 2 4 1
我要将什么填充函数传递给 geom_tile
以按频率区分表中的流行对?
这段代码
ggplot(data = mydata, aes(x = v47, y = v78)) + geom_tile()
产生这张图片
最佳答案
这是前者 ggflucation()
的修改版本,它将图 block 颜色和大小映射到频率:
mydata <- read.table(header = F, text = "
0 1 2 3 4 5
1 2 0 0 0 0
2 0 2 2 0 0
3 5 7 8 3 0
4 12 11 14 7 1
5 1 1 2 4 1")
library(ggplot2)
library(magrittr)
tab <- as.table(t(as.matrix(mydata[-1, -1])) %>% set_colnames(1:5) %>% set_rownames(1:5))
ggfluc <- function(tab) {
if (is.table(tab))
tab <- as.data.frame(t(tab))
tab <- as.data.frame(tab)
oldnames <- names(tab)
names(tab) <- c("x", "y", "result")
tab <- transform(tab, x = as.factor(x), y = as.factor(y), freq = result)
ceiling = max(tab$freq); floor = 0
tab <- transform(tab, freq = sqrt(pmin(freq, ceiling)/ceiling),
border = ifelse(is.na(freq), "grey90", ifelse(freq > ceiling, "grey30", "grey50")))
tab[is.na(tab$freq), "freq"] <- 1
tab <- subset(tab, freq * ceiling >= floor)
nx <- length(levels(tab$x))
ny <- length(levels(tab$y))
p <- ggplot(tab, aes_string(x = "x", y = "y", height = "freq", width = "freq", fill = "result")) +
geom_tile(colour = "white")
p
}
ggfluc(tab)
关于r - 使用 geom_tile 可视化表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28518902/
我有一个包含 5 列的数据框: N1 mydf$N1 levels(mydf$N1) #[1] "20" "30" "40" "50" "60" "70" "80" "100" "1
自从切换到 ggplot2 2.0.0 后,在 美学< 之外定义瓷砖的 width 和 height 时出现问题。我使用 geom_tile 创建了某种热图,我想在图 block 之间留一点空间,所以
自从切换到 ggplot2 2.0.0 后,在 美学< 之外定义瓷砖的 width 和 height 时出现问题。我使用 geom_tile 创建了某种热图,我想在图 block 之间留一点空间,所以
这个问题在这里已经有了答案: Margin adjustments when using ggplot's geom_tile() (1 个回答) 8年前关闭。 您可以看到一组有水平灰色边缘,而另一组
set.seed(1990) ID ggplot(dataset + , + aes(x=datetime,y= reorder(ID, n),fill=n))+ +
library(tidyverse) ## make data set.seed(3) dat % tbl_df() %>% rownames_to_column('Var1') %>%
使用 geom_tile,我想在每行数据之间放置一条水平线。看起来如果我在美学上使用颜色,它会在水平和垂直方向上放置线条,这不是我想要的。过去,我只是让瓷砖的高度变小,所以它们之间有一些间隔。但是,似
我正在尝试制作一个按 x 轴上的两个离散变量排序的分面 ggplot。问题是我想让垂直相邻的条目都接触。目前,行与行之间存在空间,具体取决于顶部图中与底部图中的因子水平。抱歉,这个可重现的例子有点冗长
我有两个不同的数据框:P1 和 P2。这些数据帧中的每一个都有 3 个不同的列:N1、N2 和一个值 (mean_RMSE)。 N1和N2在15到120之间,对于一条线,N2总是低于N1。 如果我绘制
我试图显示对 2 个调查问题的响应的密度和相关性。每个问题的答案都是因素 1-5,我想制作一个响应组合表的热图。 我的表格是这样的: > table(mydata$v47, mydata$v78)
我有一个数据框,其中包含来自 20 多个国家/地区的 20 多种产品中每种产品的订单数据。我已使用 ggplot2 将其放在突出显示表中使用与此类似的代码: require(ggplot2) requ
我有一个数据框,我想生成一个 geom_tile()从中绘制,但我希望图形的排序不是基于字母顺序而是基于此数据框中的变量。 structure(list(V1 = c("a", "y", "w", "
我有兴趣在 ggplot2 中使用 geom_tile 构建热图,该热图根据某个因素使用不同的渐变高颜色。 下图创建了一个图,其中各个图 block 根据 xy_type 被着色为蓝色或红色,但没有渐
我想创建一个图表来显示每天的工作时间表。我必须处理的数据看起来像这样: dput(head (TiNiSWeek, 3)) structure(list(`04:00` = c(0, 0, 0)
我正在尝试生成 heatmap使用 ggplot 绘图的 geom_tile .我的数据的行数远多于列数。 set.seed(1) df <- data.frame(val=rnorm(100
我用过 geom_tile()用于在同一张图上绘制 3 个变量...... tile_ruined_coop% group_by("bonus","malus","type","coop") %>%
我试过很多次,一个简单的光栅绘图是空的。但是可以绘制子数据框。所以我考虑了 ggplot 中的一些错误?数据框不是很大,大约 10k 行。 df % slice(1:1000) %>% ggp
我堆叠了一个数据框,它显示 group 中每个 id 的 value: df # A tibble: 11 x 3 #> id value group #> #> 1
我需要帮助为 86x86 矩阵分配正确的十六进制颜色代码到 ggplot + geom_tile()。它是一个相关矩阵,我想根据它的值和由 kmeans 聚类生成的类来给它着色。有六种不同的簇/颜色。
假设我有一个像这样的 data.frame: df <- matrix( rnorm(100), nrow = 10) rownames(df) <- LETTERS[1:10] molten <-
我是一名优秀的程序员,十分优秀!