我正在尝试制作一系列用于比较的图表。比方说,我想使用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输入scale_fill_gradientn
中的values参数,如下所示:
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
scale_fill_gradientn`的比例?