Я пытаюсь сделать серию сюжетов для сравнения. Скажем, например, я хотел бы использовать данные iris
набора, чтобы сделать сюжет, как это, где я фильтруется, чтобы просмотреть только вид setosa:Вручную установить масштаб scale_fill_distiller()
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")
Моя проблема в том, что уточные весы ар e для этого сюжета. Я знаю, что мог бы это сделать, но давайте просто скажем, что мне нужны отдельные сюжеты. Я бы хотел использовать одну и ту же шкалу заполнения для обоих графиков. В идеале я бы хотел использовать scale_fill_distiller
, но мне не удалось приблизиться, поскольку аргумент значений немного отличается для этой функции, поэтому я попробовал scale_fill_gradientn
. Во-первых, я создан fill_range
так:
fill_range <- seq(min(iris$Petal.Length), max(iris$Petal.Length), by=0.2)
Затем я попытался ввода с послед в значения аргумента в 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
scale_fill_gradientn`?
ли задающий пределы заливки в каждом графике дают желаемого результата? Как 'limits = c (min (iris $ Petal.Length), max (iris $ Petal.Length))' в 'scale_fill_distiller'. – aosmith
Ha! Настолько просто, что я полностью переусердствовал. Если вы хотите выразить это как ответ, я сразу приму его. Это именно то, что я искал. – boshek