我想在使用 ggplot2 繪制圖形時使用自定義調色板。我只舉一個用 viridis 做的例子:
library(ggplot2)
library(viridis)
ggplot(data.frame(x = rnorm(10000), y = rnorm(10000)), aes(x = x, y = y))
geom_hex() coord_fixed()
scale_fill_viridis() theme_bw()
我的想法是使用以下調色板:
palette <- c("#771C19", "#AA3929", "#E25033", "#F27314", "#F8A31B",
"#E2C59F", "#B6C5CC", "#8E9CA3", "#556670", "#000000")
library(scales)
show_col(palette)

我應該使用scale_colour_manual(values = palette),但它看起來不像我自定義的。我在做某種錯誤?
library(ggplot2)
ggplot(data.frame(x = rnorm(10000), y = rnorm(10000)), aes(x = x, y = y))
geom_hex() coord_fixed()
scale_colour_manual(values = palette) theme_bw()

uj5u.com熱心網友回復:
問題是您使用scale_color_manual的僅適用于映射在coloraes 上的離散變數。由于您有一個映射在fillaes 上的連續變數,因此一個選項是使用scale_fill_gradientn:
set.seed(123)
library(ggplot2)
palette <- c(
"#771C19", "#AA3929", "#E25033", "#F27314", "#F8A31B",
"#E2C59F", "#B6C5CC", "#8E9CA3", "#556670", "#000000"
)
ggplot(data.frame(x = rnorm(10000), y = rnorm(10000)), aes(x = x, y = y))
geom_hex()
coord_fixed()
scale_fill_gradientn(colors = palette)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/462727.html
上一篇:如何在ggiraph的工具提示中插入R(互動式或非互動式)圖形?
下一篇:更密集的ggplot圖形
