标签: geom-tile

将 geom_tile() 上的 x 轴标签更改为小时(时间)

这是一个geom_tile显示小时和星期几的例子,如何才能显示每个小时(即 x 轴上的 00:00 到 23:00)?

library(tidyverse)
df %>% 
  ggplot(aes(hour, day, fill = value)) +
  geom_tile(colour = "ivory") 
Run Code Online (Sandbox Code Playgroud)

目前它每五小时显示一次:

在此输入图像描述

我尝试了很多不同的方法,并且更喜欢“最佳实践”方式(即无需手动生成标签),但如果需要标签,这里有一种生成标签的方法hour_labs <- 0:23 %>% { ifelse(nchar(.) == 1, paste0("0", .), .) } %>% paste0(., ":00")

可重现示例的数据


df <- structure(list(day = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 geom-tile

5
推荐指数
1
解决办法
1671
查看次数

在 R 中模拟网格中的二维随机游动并使用 ggplot 进行绘图

我正在寻找一个简单的代码,可以模拟网格中的二维随机游走(使用R),然后使用 绘制数据ggplot

特别是,我对从 2D 网格中的几个位置(5 个点)到方形网格中心的随机游走感兴趣。它仅用于可视化目的。

然后我的想法是ggplot在离散网格上绘制结果(如模拟的那样),可能使用函数geom_tile

您对我可以轻松操作的现有代码有什么建议吗?

r ggplot2 random-walk geom-tile

4
推荐指数
2
解决办法
1701
查看次数

如何删除 geom_tile 中图块之间的空白空间并更改图块大小

我有一个具有以下结构的 df :

    id   col1  col2  col3
#1  A     1     3     3
#2  B     2     2     3
#3  C     1     2     3
#4  D     3     1     1
Run Code Online (Sandbox Code Playgroud)

我想创建一个“类似热图”的图形,其中 col1-col3 被视为因子变量(有五个级别 1-5,此处未全部显示),并且根据它们的值,它们会收到不同的颜色。我已经对以下代码进行了相对深入的了解:

df <- melt(df, id.vars="id")
p <- ggplot(df, aes(x=variable, y=id, label=value, fill=as.factor(value))) + 
  geom_tile(colour="white", alpha=0.2, aes(width=0.4)) +
  scale_fill_manual(values=c("yellow", "orange", "red", "green", "grey")) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
  labs(x = "Value", y="id") +
  scale_x_discrete(expand=c(0,0))+
  scale_y_discrete(expand=c(0,0))
Run Code Online (Sandbox Code Playgroud)

然而,由于某种原因,我的图块在 x 轴上的图块之间(即每个因子水平之间)有很大的灰色空白空间。输出图像看起来像这样 示例“tile_plot”

另外,我在每个图块的中间都有这些细白线,
所以我想做的是:1-更改图块的大小和形状(希望它是正方形且比现在小)2-删除白色瓷砖中间的线。

谢谢你!

r ggplot2 geom-tile

3
推荐指数
1
解决办法
2691
查看次数

合并相同的图块

geom_tile()geom_textfrom一起使用ggplot2基本上生成一个表:

在此输入图像描述

两个因素(X 和 Y)绘制在 x 轴上(产生两列图块)。因子 Y 的水平嵌套在因子 X 内。因此,绘制了因子 X 的多个相同图块(每个因子 Y 水平一个图块)。有没有办法将因子 X 的图块“合并”为更大的图块,并且每个图块仅出现一次文本?我也愿意接受使用其他功能来geom_tile()实现这一目标的方法。

结果应该是这样的:

在此输入图像描述

这是我的代码:

library(ggplot2)

dat <- data.frame(id = c(1:4, 1:4),
                  factor = c(rep("X", times = 4), rep("Y", times = 4)),
                  value = c("A", "A", "B", "B", "C", "D", "E", "F"))

ggplot(dat, aes(y = id, x = factor)) +
  geom_tile(color = "black", fill = NA) +
  geom_text(aes(label = value))
Run Code Online (Sandbox Code Playgroud)

y = id必须保存。

编辑1

在我的实际数据中,id 是一个因素:

dat <- …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 geom-text geom-tile

1
推荐指数
1
解决办法
144
查看次数

标签 统计

geom-tile ×4

ggplot2 ×4

r ×4

geom-text ×1

random-walk ×1