r - 使用 ggplot

问题描述 投票:0回答:1

使用 R 基础图形,我已经能够使用此脚本绘制由简单函数计算出的四条曲线的绘图:

I0 <- log(1)
I1 <- log(1/2)
b <- .1
d <- .01
d1 <- .014

curve(exp(I0 - b * x), 0, 50, col = "blue", lwd = 2)
curve(exp(d * x) - 1, 0, 50, add = TRUE, col = "orange", lwd = 2)
curve(exp(I1 - b * x), 0, 50, add = TRUE, lty = 2, col = "green", lwd = 2)
curve(exp(d1 * x) - 1, 0, 50, add = TRUE, lty = 2, col = "red", lwd = 2)

但是当尝试使用 ggplot2 和下面的脚本重现相同的情节时,我得到了一些奇怪的东西:

library(ggplot2)

I0 <- log(1)
I1 <- log(1/2)
b <- .1
d <- .01
d1 <- .014

base <- ggplot() + xlim(0, 50) +
  geom_function(fun = function(x) exp(I0 - b * x), colour = "blue") +
  geom_function(fun = function(x) exp(d * x), colour = "orange") +
  geom_function(fun = function(x) exp(I1 - b * x), color = "green") +
  geom_function(fun = function(x) exp(d1 * x), color = "red")

plot(base)

另外,我怎样才能改变线宽(大概使用geom_line())?

我知道这是一个愚蠢的问题,但是有人可以给我一些提示吗?

r ggplot2 curve
1个回答
0
投票

原因是你的功能不匹配。橙色和红色线上缺少

- 1
linewidth
将控制线宽。

ggplot() + xlim(0, 50) +
  geom_function(fun = function(x) exp(I0 - b * x), colour = "blue", linewidth = 0.1) +
  geom_function(fun = function(x) exp(d * x) - 1, colour = "orange", linewidth = 1.5) +
  geom_function(fun = function(x) exp(I1 - b * x), color = "green") +
  geom_function(fun = function(x) exp(d1 * x) - 1, color = "red")

或与

+ ggthemes::theme_base()

© www.soinside.com 2019 - 2024. All rights reserved.