geom_contour 中的反转图例
Reverse legend in geom_contour
我正在努力寻找正确的解决方案来反转图例,以便红色在底部,绿色在顶部。这是一个简单的例子。
library(ggplot2)
library(dplyr)
x = seq(0.01,1,0.01)
y = seq(0.01,1,0.01)
df <- expand.grid(x = x, y = y)
df <- df %>% mutate(z = x*y/(1 + x))
ggplot(df, aes(x = x, y = y, z = z)) +
geom_contour_filled(bins = 10) +
geom_contour(bins = 20, colour = "grey") +
scale_fill_manual(values = rainbow(20))
几个问题:
- 您正在使用 20 种颜色来描述 10 个 bin。
- 您正在使用整个彩虹作为 red-green 渐变。
建议的解决方法是使用 rainbow()
函数的 end
和 rev
参数。
library(ggplot2)
library(dplyr)
x = seq(0.01,1,0.01)
y = seq(0.01,1,0.01)
df <- expand.grid(x = x, y = y)
df <- df %>% mutate(z = x*y/(1 + x))
ggplot(df, aes(x = x, y = y, z = z)) +
geom_contour_filled(bins = 10) +
geom_contour(bins = 20, colour = "grey") +
scale_fill_manual(values = rainbow(10, end = 0.4, rev = TRUE))
由 reprex package (v2.0.1)
于 2022-05-15 创建
除此之外,您可能需要考虑采用比彩虹具有更好视觉特性的调色板。例如,您真的可以从视觉上区分第 2 到第 4 个绿色垃圾箱吗?具有更好(但不完美)属性的关闭调色板是 viridisLite::turbo(10, begin = 0.5)
.
我正在努力寻找正确的解决方案来反转图例,以便红色在底部,绿色在顶部。这是一个简单的例子。
library(ggplot2)
library(dplyr)
x = seq(0.01,1,0.01)
y = seq(0.01,1,0.01)
df <- expand.grid(x = x, y = y)
df <- df %>% mutate(z = x*y/(1 + x))
ggplot(df, aes(x = x, y = y, z = z)) +
geom_contour_filled(bins = 10) +
geom_contour(bins = 20, colour = "grey") +
scale_fill_manual(values = rainbow(20))
几个问题:
- 您正在使用 20 种颜色来描述 10 个 bin。
- 您正在使用整个彩虹作为 red-green 渐变。
建议的解决方法是使用 rainbow()
函数的 end
和 rev
参数。
library(ggplot2)
library(dplyr)
x = seq(0.01,1,0.01)
y = seq(0.01,1,0.01)
df <- expand.grid(x = x, y = y)
df <- df %>% mutate(z = x*y/(1 + x))
ggplot(df, aes(x = x, y = y, z = z)) +
geom_contour_filled(bins = 10) +
geom_contour(bins = 20, colour = "grey") +
scale_fill_manual(values = rainbow(10, end = 0.4, rev = TRUE))
由 reprex package (v2.0.1)
于 2022-05-15 创建除此之外,您可能需要考虑采用比彩虹具有更好视觉特性的调色板。例如,您真的可以从视觉上区分第 2 到第 4 个绿色垃圾箱吗?具有更好(但不完美)属性的关闭调色板是 viridisLite::turbo(10, begin = 0.5)
.