如何在 R 中绘制函数曲线

Posted

技术标签:

【中文标题】如何在 R 中绘制函数曲线【英文标题】:How to plot a function curve in R 【发布时间】:2014-11-23 08:09:15 【问题描述】:

为像这样的函数绘制简单曲线的替代方法是什么

eq = function(x)x*x

在R中?

听起来很明显的问题,但我只能在***上找到这些相关的问题,但都比较具体

Plot line function in R Plotting functions on top of datapoints in R How can I plot a function in R with complex numbers? How to plot a simple piecewise linear function? Draw more than one function curves in the same plot

希望我没有写重复的问题。

【问题讨论】:

【参考方案1】:

你的意思是这样的?

> eq = function(x)x*x
> plot(eq(1:1000), type='l')

(或与您的功能相关的任何值范围)

【讨论】:

【参考方案2】:

plot 有一个plot.function 方法

plot(eq, 1, 1000)

或者

curve(eq, 1, 1000)

【讨论】:

有趣,我没有在其他任何地方看到您的示例plot(eq, 1, 1000)。我还看到了curve(eq, 1, 100) 示例。有区别吗? @sjdh 不多。 plot.function 在做一些参数检查后实际上调用了curve。此外,curve 可以将表达式作为输入,但 plot 需要一个函数作为输入才能调度到 plot.function【参考方案3】:

我在网上做了一些搜索,这是我找到的一些方法:

最简单的方法是使用没有预定义函数的曲线

curve(x^2, from=1, to=50, , xlab="x", ylab="y")

如果你有一个预定义的函数,你也可以使用曲线

eq = function(x)x*x
curve(eq, from=1, to=50, xlab="x", ylab="y")

如果你想使用ggplot,

library("ggplot2")
eq = function(x)x*x
ggplot(data.frame(x=c(1, 50)), aes(x=x)) + 
  stat_function(fun=eq)

【讨论】:

仅供参考,qplot 示例不再有效:为了鼓励用户使用 ggplot()qplot() 函数已被削弱 - 例如,它不再接受 fun 参数(截至v3?)【参考方案4】:

这是一个格子版本:

library(lattice)
eq<-function(x) x*x
X<-1:1000
xyplot(eq(X)~X,type="l")

【讨论】:

【参考方案5】:

具有我需要的附加设置的格子解决方案:

library(lattice)
distribution<-function(x) 2^(-x*2)
X<-seq(0,10,0.00001)
xyplot(distribution(X)~X,type="l", col = rgb(red = 255, green = 90, blue = 0, maxColorValue = 255), cex.lab = 3.5, cex.axis = 3.5, lwd=2 )
    如果您需要以不同于 1 的增量绘制 x 的值范围,例如0.00001 你可以使用:

X

    您可以通过定义 rgb 值来更改线条的颜色:

col = rgb(red = 255, green = 90, blue = 0, maxColorValue = 255)

    您可以通过设置更改绘制线的宽度:

lwd = 2

    您可以通过缩放标签来更改它们的大小:

cex.lab = 3.5,cex.axis = 3.5

【讨论】:

【参考方案6】:

正如 sjdh 也提到的,ggplot2 来救援。不制作虚拟数据集的更直观的方法是使用 xlim:

library(ggplot2)
eq <- function(x)sin(x)
base <- ggplot() + xlim(0, 30)
base + geom_function(fun=eq)

此外,为了更平滑的图,我们可以使用 n 设置图插值的点数:

base + geom_function(fun=eq, n=10000)

【讨论】:

以上是关于如何在 R 中绘制函数曲线的主要内容,如果未能解决你的问题,请参考以下文章

R语言绘制生存曲线95%区间

如何在 R(party-package)中绘制 cForest 的学习曲线?

如何在R中的能量图中绘制曲线?

如何在MATLAB中绘制曲线簇及其包络曲线

如何使用 r 中的 ROCR 包绘制 ROC 曲线,*只有分类列联表*

R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值plot.roc函数绘制ROC曲线添加置信区间为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来