我正在尝试制作一个在一个轴上具有多个级别分类的热图,即将“理想”,“高级”和“非常好”钻石标记为“好”,而将“好”和“一般”钻石标记为“好”。
我知道我可以使用颜色,但是我希望它可以在黑白中工作,并且我不能使用sec_axis
,因为它不是一对一的映射。 (我尝试使用scale_y_discrete(sec.axis = sec_axis(rating))
和sec.axis = rating
,但都给了我一个未使用的参数错误。)
以下是一些具有代表性的数据,其中包含编写常规热图的代码:
library(ggplot2)
diamond_rating <- tibble(cut = factor("Fair", "Good", "Very Good", "Premium", "Ideal"), rating = c("OK", "OK", "Great", "Great", "Great"))
diamonds %>%
count(color, cut) %>%
left_join(diamond_rating) %>%
ggplot(mapping = aes(x = color, y = cut)) +
geom_tile(mapping = aes(fill = n))
但是我无法弄清楚如何添加超轴,甚至无法确定它应如何适合ggplot2的图形语法。