我正在尝试制作一系列图表进行比较。举例来说,我想使用iris
数据集来制作这样的图,其中我已过滤以仅查看 setosa 物种:
library(ggplot2)
library(dplyr)
iris %>%
filter(Species=="setosa") %>%
ggplot(aes(y = Sepal.Width, x = Sepal.Length, fill = Petal.Length)) +
geom_tile(stat = "identity") +
scale_fill_distiller(palette = "Spectral")
现在,如果我想以同样的方式绘制杂色物种,我可以这样做:
iris %>%
filter(Species=="versicolor") %>%
ggplot(aes(y = Sepal.Width, x = Sepal.Length, fill = Petal.Length)) +
geom_tile(stat = "identity") +
scale_fill_distiller(palette = "Spectral")
我的问题是这些图的填充比例不同。我知道我可以facet_wrap
这些可以解决这个问题,但我们只能说我需要单独的图。我想要的是对两个图应用相同的填充比例。理想情况下我想继续使用scale_fill_distiller
但我没能走得太远,因为该函数的值参数有点不同,所以我尝试了scale_fill_gradientn
。首先我建立了一个fill_range
像这样:
fill_range <- seq(min(iris$Petal.Length), max(iris$Petal.Length), by=0.2)
然后我尝试将 seq 输入到 value 参数中scale_fill_gradientn
像这样:
iris %>%
filter(Species=="versicolor") %>%
ggplot(aes(y = Sepal.Width, x = Sepal.Length, fill = Petal.Length)) +
geom_tile(stat = "identity") +
scale_fill_gradientn(colours = terrain.colors(length(fill_range)),
values=fill_range)
iris %>%
filter(Species=="setosa") %>%
ggplot(aes(y = Sepal.Width, x = Sepal.Length, fill = Petal.Length)) +
geom_tile(stat = "identity") +
scale_fill_gradientn(colours = terrain.colors(length(fill_range)),
values=fill_range)
这些都没有产生预期的结果,绘制了一堆灰色瓷砖,每个瓷砖都有一个绿色瓷砖。
有谁知道我可以在哪里手动指定比例scale_fill_distiller"? If that is not possible, can anyone see where I have gone wrong with
缩放填充梯度`?