gpt4 book ai didi

r - 将连续的 brewer 调色板作为 ggplot2 的图例进行插值

转载 作者:行者123 更新时间:2023-12-02 22:01:08 26 4
gpt4 key购买 nike

我有一个图,其中几个观察值叠加在直方图上。观察结果是按顺序收集的,我需要观察它们的收集顺序。使用 scale_colour_brewer 很简单。问题是,连续 brewer 调色板的最大长度为 9。我有多达 20 个观察的示例,但我不确定如何使用插值颜色。下面是一些代码,用不到 10 点演示了我想要的输出。

# Setting this to be > 9 will cause a warning and not produce the desired result.
observations = 9
subset <-1:observations
res = data.frame(x_data = rnorm(5000),TestID=1:5000)
ggplot(res,aes(x=x_data)) +
stat_bin(aes(y=..density..))+
stat_density(colour="blue", fill=NA)+
geom_point(data = res[res$TestID %in% subset,],
aes(x = x_data,
y = 0,
colour = as.factor(res$TestID[res$TestID %in% subset])
),
size = 5) +scale_colour_brewer("Fancy title", type="seq", palette='Reds')

我知道随着观察数量变大,这个图会变得难以阅读。但是,我相信有多达 20 种颜色,应该可以在我的应用程序中解释结果。

最佳答案

扩展我的评论,您需要使用 colorRampPalette:

library(RColorBrewer)
blues_fun <- colorRampPalette(brewer.pal(9,"Blues"))
> blues_fun(20)
[1] "#F7FBFF" "#ECF4FB" "#E1EDF8" "#D7E6F4" "#CDE0F1" "#C1D9ED" "#B0D2E7" "#A0CAE1" "#8BBFDC" "#75B3D8" "#62A8D2" "#519CCB"
[13] "#4090C5" "#3282BD" "#2474B6" "#1966AD" "#0E59A2" "#084B94" "#083D7F" "#08306B"

然后通过scale_colour_manual构建比例:

ggplot(res,aes(x=x_data)) + 
stat_bin(aes(y=..density..))+
stat_density(colour="blue", fill=NA)+
geom_point(data = res[res$TestID %in% subset,],
aes(x = x_data,
y = 0,
colour = as.factor(res$TestID[res$TestID %in% subset])
),
size = 5) +
scale_colour_manual("Fancy title",values = blues_fun(9))

您只需将生成的颜色传递给 values 参数即可。

关于r - 将连续的 brewer 调色板作为 ggplot2 的图例进行插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16922988/

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