gpt4 book ai didi

r - 用ggplot绘制多个正方形

转载 作者:行者123 更新时间:2023-12-03 14:39:39 36 4
gpt4 key购买 nike

我正在尝试更改为 ggplot 的“背景”颜色。我想要实现的是下面显示的情节。我已经用 试过了geom_ribbon 但我只能定义 ymin 和 ymax。这允许我只创建两个正方形。
到目前为止我使用的代码:

df <- data.frame(x = rnorm(10), y = rnorm(10))

ggplot(df) +
geom_point(aes(x, y)) +
geom_ribbon(aes(x = x, ymin = min(y), ymax = 0), fill = "red", alpha = .5) +
geom_ribbon(aes(x = x, ymin = min(0), ymax = max(y)), fill = "blue", alpha = .5)
这是我想要得到的结果:
ggplot example

谢谢你的时间。

最佳答案

您的答案的一个变体,如果您希望“背景”颜色一直到图形的边缘,而不仅仅是数据的极端:

ggplot(df) +
geom_rect(xmin = -Inf, xmax = 0, ymin = -Inf, ymax = 0, fill = "red") +
geom_rect(xmin = 0, xmax = Inf, ymin = -Inf, ymax = 0, fill = "blue") +
geom_rect(xmin = 0, xmax = Inf, ymin = 0, ymax = Inf, fill = "green") +
geom_rect(xmin = -Inf, xmax = 0, ymin = 0, ymax = Inf, fill = "yellow") +
geom_point(aes(x, y), size = 5)

enter image description here

编辑:透明度

添加 alpha=0.5除了使用 geom_rect 的问题外,它一直在“工作” ,即使不引用原文 df数据框,为 df的每一行画一个矩形(在本例中为 10 次)。设置 alpha=0.01显示有透明度,但只有预期的 10 分之一。方法应该是用矩形进行注释;注释仅绘制 geom 的一个实例,而不是原始数据框的每一行一个:
ggplot(df) +
annotate("rect", xmin=-Inf, xmax=0, ymin=-Inf, ymax=0, fill="red", alpha=0.5) +
annotate("rect", xmin=0, xmax=Inf, ymin=-Inf, ymax=0, fill="blue", alpha=0.5) +
annotate("rect", xmin=0, xmax=Inf, ymin=0, ymax=Inf, fill="green", alpha=0.5) +
annotate("rect", xmin=-Inf, xmax=0, ymin=0, ymax=Inf, fill="yellow", alpha=0.5) +
geom_point(aes(x, y), size=5)

enter image description here

关于r - 用ggplot绘制多个正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15903868/

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