【问题标题】:Plotting axes in R在 R 中绘制轴
【发布时间】:2020-10-18 15:09:22
【问题描述】:

我应该绘制以下函数:

h <- function(x) 0.08-0.06*(1-exp((-x)/(1.5)))/((x)/(1.5))-0.3*((1-exp((-x)/(1.5)))/((x)/(1.5))-exp(-((x)/(1.5)))+0.6*((1-exp((-x)/(0.5)))/((x)/(0.5))-exp(-((x)/(0.5)))))

所以我做到了:

plot(-1:24, h(-1:24), type="l")

它适用于 x 轴。但我不知道如何为 y 更改它。

对于 x 我想从 -1 到 24 绘制它,对于 y 从 -0.5 到 0.2。

有人可以帮忙吗?

【问题讨论】:

  • 你应该向我们展示你到目前为止所拥有的东西。

标签: r error-handling


【解决方案1】:

您的函数的一个问题是它在 0 处未定义,因此您在 x == -1 处得到一个点,然后在 x == 1 处得到一个间隙。你会得到一个更好的情节,更多的点,例如

x <- seq(-1, 24, len=200)
plot(x, h(x), type = "l")

(它永远不会将其评估为零,因此不会出现间隙)。

如果您仍想更改轴限制,请使用

x <- seq(-1, 24, len=200)
plot(x, h(x), type = "l", ylim = c(-0.5, 2))

【讨论】:

    【解决方案2】:

    使用 ggplot2 你可以做到:

    library(ggplot2)
    data = data.frame(x = -1:24)
    ggplot(data, aes(x=x)) + stat_function(fun=h) + ylim(-0.5,2)
    

    或者

    data = data.frame(x = -1:24, y = h(-1:24))
    ggplot(data, aes(x=x, y=y)) + geom_line() + ylim(-0.5,2)
    

    但是plot 的解决方案可能更简单,因为它非常简单,我猜 ggplot 有点矫枉过正。

    【讨论】:

      猜你喜欢
      • 2014-03-30
      • 1970-01-01
      • 2021-08-12
      • 2016-09-28
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多