我正在尝试制作一系列用于比较的图.比如说,我想使用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")
Run Code Online (Sandbox Code Playgroud)
现在,如果我想以同样的方式绘制多色物种,我可以这样做:
iris %>%
filter(Species=="versicolor") %>%
ggplot(aes(y = Sepal.Width, x = Sepal.Length, fill = Petal.Length)) +
geom_tile(stat = "identity") +
scale_fill_distiller(palette = "Spectral")
Run Code Online (Sandbox Code Playgroud)
我的问题是这些情节的填充比例是不同的.我知道我可以facet_wrap解决这个问题,但我只想说我需要个别情节.我想要的是将相同的填充比例应用于两个图.理想情况下我想继续使用,scale_fill_distiller但由于该函数的值参数有点不同,我无法达到很远,所以我尝试了scale_fill_gradientn.首先我建立了fill_range这样的:
fill_range <- seq(min(iris$Petal.Length), max(iris$Petal.Length), by=0.2)
Run Code Online (Sandbox Code Playgroud)
然后我尝试将seq输入到values参数中,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)
Run Code Online (Sandbox Code Playgroud)
这些都没有产生预期的结果,绘制一堆灰色瓷砖,每个都有一个绿色瓷砖.
有没有人知道我可以手动指定scale_fill_distiller"? If that is not possible, can anyone see where I have gone wrong withscale_fill_gradientn` 的比例?
aos*_*ith 13
您可以limits在两个图中将它们设置为相同scale_fill_distiller.
使用min和max的Petal.Length的限制:
iris %>%
filter(Species=="setosa") %>%
ggplot(aes(y = Sepal.Width, x = Sepal.Length, fill = Petal.Length)) +
geom_tile(stat = "identity") +
scale_fill_distiller(palette = "Spectral",
limits = c(min(iris$Petal.Length), max(iris$Petal.Length)))
Run Code Online (Sandbox Code Playgroud)
iris %>%
filter(Species=="versicolor") %>%
ggplot(aes(y = Sepal.Width, x = Sepal.Length, fill = Petal.Length)) +
geom_tile(stat = "identity") +
scale_fill_distiller(palette = "Spectral",
limits = c(min(iris$Petal.Length), max(iris$Petal.Length)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9444 次 |
| 最近记录: |