如何在 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(party-package)中绘制 cForest 的学习曲线?
如何使用 r 中的 ROCR 包绘制 ROC 曲线,*只有分类列联表*
R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值plot.roc函数绘制ROC曲线添加置信区间为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来