【发布时间】:2021-10-12 04:09:49
【问题描述】:
我创建了一个热图,表示两种产品(A 和 B)的使用时间,颜色为 C1 和 C2。根据使用时间,可以对产品的使用方式进行分类(上帝,常规或不良)。在使用分类中,有一些类别随着时间的变化而重叠,如下所述:
良好:使用时间大于或等于 280 分钟。
常规:使用时间在 150 到 350 分钟之间。
不好:使用时间小于或等于 10 分钟。
我想为好、常规和坏类别创建构面,而不是完全分离构面,而是将它们重叠,如下面的第二张图片所示。我所做的尝试并不令人满意。热图的最终美感不必与第二张图片中显示的完全相同,只需正确指示分类即可。
library(ggplot2)
Product <- c("A", "B")
Color <- c("C1", "C2")
Time <- seq(10, 430, 60)
df <- expand.grid(Time = Time,
Color = Color,
Product = Product)
df$Fill_factor <- seq(1, 32, 1)
df$Usage <- ifelse(
df$Time <= 10,
"Bad",
ifelse(
df$Time >= 150 & df$Time <= 350,
"Regular",
ifelse(
df$Time >= 280,
"Good",
"Without classification"
)
)
)
ggplot(data = df,
aes(x = Product,
y = Time,
fill = Fill_factor)) +
geom_tile() +
geom_text(aes(label = Fill_factor),
size = 2.5) +
facet_grid(~ Color) +
scale_y_continuous(breaks = seq(10, 430, 60))
# Fail
ggplot(data = df,
aes(x = Product,
y = Time,
fill = Fill_factor)) +
geom_tile() +
geom_text(aes(label = Fill_factor),
size = 2.5) +
facet_grid(Usage ~ Color) +
scale_y_continuous(breaks = seq(10, 430, 60))
【问题讨论】: