gpt4 book ai didi

r - 手动设置 scale_fill_distiller() 的比例

转载 作者:行者123 更新时间:2023-12-04 10:15:38 25 4
gpt4 key购买 nike

我正在尝试制作一系列绘图进行比较。比如说,我想使用 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")

enter image description here

现在,如果我想以同样的方式绘制杂色物种,我可以这样做:
iris %>%
filter(Species=="versicolor") %>%
ggplot(aes(y = Sepal.Width, x = Sepal.Length, fill = Petal.Length)) +
geom_tile(stat = "identity") +
scale_fill_distiller(palette = "Spectral")

enter image description here

我的问题是这些图的填充比例不同。我知道我可以 facet_wrap这些来解决这个问题,但我们只是说我需要单独的情节。我想要的是对两个图应用相同的填充比例。理想情况下,我想继续使用 scale_fill_distiller但我无法走得很远,因为该函数的 values 参数有点不同,所以我尝试了 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`?

最佳答案

您可以设置 limitsscale_fill_distiller 内的两个图中都相同.

使用 minmaxPetal.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)))

enter image description here
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)))

enter image description here

关于r - 手动设置 scale_fill_distiller() 的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38492029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com