gpt4 book ai didi

r - geom_area 高于临界水平时不同的填充颜色

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

我试图让 geom_area 具有取决于 Y 轴值的双色。

例如,如果我们有一个最大 X 值为 50 的 geom_area,我希望填充颜色低于 10 时为蓝色,高于 10 时为红色。

样本数据;

df <- data.frame(
y = sample(1:50),
x = sample(1:50)
)

到目前为止,我设法获得的最接近的是使用以下代码;
ggplot(data = df, aes(x = x)) + 
geom_area(aes(y = y),fill = "red") +
geom_ribbon(aes(ymin = 0, ymax = ifelse(y >= 10,10,y)),fill = "blue")

这几乎让我得到了我所需要的,但是问题是水平分割并没有完全跨越 geom_area,因为当下一个值低于最大值时,色带的边缘会直接到达下一个点,这会破坏分割。

SamplePlot

这是准确地绘制代码告诉它的内容,所以我必须使用错误的方法来创建颜色分割,但无法弄清楚如何正确地做到这一点。

最佳答案

一个快速的解决方法是使用 approx 在 x 值之间进行插值。 .设置 n参数(插值点的数量)设置为足够高的值以使蓝色一直穿过:

ggplot(data = as.data.frame(approx(df,n=1000)), aes(x = x)) + 
geom_area(aes(y = y),fill = "red") +
geom_ribbon(aes(ymin = 0, ymax = ifelse(y >= 10,10,y)),fill = "blue") +
theme_classic()

enter image description here

关于r - geom_area 高于临界水平时不同的填充颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43127974/

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