r - 用points()绘制函数

标签 r plot

我正在使用 R 绘制函数,并且想要将描述多个函数的行添加到同一个图中。为了绘制函数,我写:

plot(function(x){x}, 
     xlab="Celsius", xlim=c(-100, 100), 
     ylab="Degrees", ylim=c(-100, 100))

这将绘制一条 1:1 线。如果我想在同一个图表上绘制不同的函数,我可以使用 points() 函数,但这需要 x 的数据值提供,以便将 length(x) 点(由线连接)绘制为:

points(x=seq(-100, 100, by=0.1), 
       y=c(seq(-100, 100, by=0.1)-32)*5/9, 
       typ="l", col="red")

在绘制函数时是否可以在图中添加线条,而不必使用 points() 或其他函数计算数据点? 本质上,它是像这样的东西:

plot(function(x){x}, 
     xlab="Celsius", xlim=c(-100, 100), 
     ylab="Degrees", ylim=c(-100, 100))
points(function(x){(x-32)*5/9}, 
       typ="l", col="red")

这只是一个示例,它显示了 X 轴上的摄氏度和 Y 轴上的摄氏度之间的关系,单位为摄氏度(黑色)和华氏度(红色)。实际上,我想绘制多个复杂函数,但这只会给问题增加噪音。

enter image description here


我发现的一个解决方案是

plot(function(x){x}, 
     xlab="Celsius", xlim=c(-100, 100), 
     ylab="Degrees", ylim=c(-100, 100))
par(new=TRUE)
plot(function(x){(x-32)*5/9}, 
     xlab="", xlim=c(-100, 100), 
     ylab="", ylim=c(-100, 100),
     axes=FALSE, col="red")

但每次都必须定义限制和标签以及 AXES=FALSE 似乎很麻烦。

最佳答案

您可以使用 plot 函数两次,并为第二个绘图添加 add = TRUE

使用plot,您还可以使用fromto参数来避免重复y轴限制,尽管它会保留y轴- 第一个图中定义的轴限制(因此它可能不是最佳的)。

plot(function(x){x}, 
     xlab="Celsius", xlim=c(-100, 100), 
     ylab="Degrees", ylim=c(-100, 100))
plot(function(x) {(x-32)*5/9}, from = -100, to = 100, typ="l", col="red", add=T)

example

正如@Roland和@user2554330所提到的,如果你想从同一个函数绘制多条线,你也可以使用曲线,并使用()来避免分配预先调用该函数,add = i!=1 代表除第一次之外的每次迭代中的 add = T

for(y in 1:10) {
  curve((x + 10*y), from=-100, to=100, add=i!=1)
}

enter image description here

关于r - 用points()绘制函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70151625/

相关文章:

plot - 将 Mathematica 的绘图选项保存到单个变量中

matlab - 如何在Matlab中画出这种树状的点阵结构?

r - dplyr everything() 参数字符串 select_

r - 计算按列值链接的项目对

r - Plotly/Vistime - 重叠标签

r - 使用 ggplot 移动绘图

python - pandas 绘制一个特定的列作为 x 轴和 y 轴?

plot - gnuplot:分散数据集的等高线图

sql - 如何将 SQL 导入 R 的 dplyr?

r - 如何在向量的每个值之间写一个逗号?