如何通过值可视化原始数据

How to visualize the original data by the values

我有一个看起来像

的数据集
df <- data.frame(
  name = LETTERS[seq(from = 1, to = 10)],
  var1 = sample(1:20, 10),
  var2 = sample(5:25, 10),
  var3 = sample(10:30, 10),
  var4 = sample(15:35, 10),  
  var5 = sample(20:40, 10)
)

如何在ggplot中呈现按值填充单位的原始数据? 比如 Excel 'conditional formatting' 函数可以做什么?

我想这里涉及 geom_segment 而我的列是一组变量(它们在 'real' 数据集中具有有意义的名称)而不是数值,我的行名也是如此(实际上是第一列).所以我完全不知道如何设置 x、xend、y、yend 等并使其保持原样。

感谢您的帮助。

您可以通过 geom_tile 实现您想要的结果,方法是首先使用例如将您的数据转换为长格式tidyr::pivot_longer 像这样:

set.seed(123)

library(ggplot2)
library(tidyr)

df_long <- df |> 
  pivot_longer(-name, names_to = "var")

ggplot(df_long, aes(x = var, y = name, fill = value)) +
  geom_tile() +
  geom_text(aes(label = value)) +
  scale_fill_gradient(low = "#F7FCF5", high = "#005A32")

library(data.table)

ggplot(melt(setDT(df), id.var="name"),aes(variable, name, fill=value)) + 
  geom_bin2d() + 
  geom_text(aes(label=value)) + 
  scale_fill_gradient(low = "lightgreen", high = "darkgreen") + 
  scale_x_discrete(position = "top") + 
  scale_y_discrete(limits=rev) + 
  labs(x="", y="") + 
  theme(legend.position="none")