【问题标题】:ggplot - Plotting several sin functions on one graph [duplicate]ggplot - 在一张图上绘制几个 sin 函数 [重复]
【发布时间】:2020-05-27 10:08:51
【问题描述】:

我想以图形方式显示两条不同 sin 曲线的总和是什么样的。 所以,我正在尝试制作一个图表,显示两个不同的 sin 函数及其总和。因此,一张图上有三条曲线。

如何使用 ggplot 图层进行操作?

我定义了两个 sin 函数(y 和 z)

x <- seq(0, 16*pi, 0.01)
y <- 2*sin(3*(x-1))
z <- sin(x)

总结两条曲线:

t <- y + z

我可以通过以下方式分别查看这三个:

plot(x,y,type="l")
plot(x,z,type="l")
plot(x,t,type="l")

但是如何绘制这三个函数呢?

我试过了,但是不行

ggplot(x,
       qplot(y,x,geom="path", xlab="time", ylab="Sine wave") +
       qplot(z,x,geom="path", xlab="time", ylab="Sine wave"))

【问题讨论】:

    标签: r ggplot2 plot


    【解决方案1】:

    将所有内容存储在data.frame 中,从宽变为长,然后绘制:

    library(tidyverse)
    data.frame(x = x, y = y, z = z, t = y + z) %>%
        pivot_longer(-x) %>%
        ggplot(aes(x, value, colour = name)) +
        geom_line()
    


    样本数据

    x <- seq(0, 16*pi, 0.01)
    y <- 2*sin(3*(x-1))
    z <- sin(x)
    

    【讨论】:

    • 谢谢,但我收到一个错误:找不到函数“pivot_longer”。我已经尝试过使用 tidyr、dplyr、tidyverse、data.table 并且确实有效。如何让它发挥作用?谢谢
    • @RonSlavaGrodko 你需要更新tidyr; pivot_longer 在版本1.0.0 中引入(当前CRAN 版本为1.0.2)并替换gather。旧版本为gather(name, value, -x)
    猜你喜欢
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多