簡體   English   中英

如何使用 R 中的 -plot- function 覆蓋兩條線

[英]How to overlay two lines using the -plot- function in R

我正在使用 R 版本 3.6.0。 我試圖在單個 plot 上覆蓋 3 行。 我過去使用相同的代碼成功地完成了這項工作,但由於某種原因它似乎不起作用。 我有以下 RWE:

y.l <- function(x){0.024 - 0.00004*x + 0.00001*(10-16.8764)}

y.a <- function(x){0.024 - 0.00004*x}

y.h <- function(x){0.024 - 0.00004*x + 0.00001*(20-16.8764)}

png("yplot.png")
yplot <- plot(y.l(1:800),
              type="l", lty=2, 
              xlab="x", ylab="y", main="Getting better :/",
              ylim=c(-0.025,0.025))

lines(1:800, lty=1, y.a(1:800))
lines(1:800, lty=3, y.h(1:800))
dev.off()

產生以下 plot:

在此處輸入圖像描述

由於某種原因,它忽略了額外的 -lines()- 代碼。 整天盯着電腦看,我是否忽略了一些明顯的錯誤? 我以前做過同樣的事情,但我終其一生都無法弄清楚。 是的,我已經擴展了 y 軸以查看它們是隱藏在上方還是下方,而實際上不是。

繪制了 3 條線,這是因為您的 function 看不到它們。 這里是你的三個 function 的 output:

> head(y.a(1:800))
[1] 0.02396 0.02392 0.02388 0.02384 0.02380 0.02376
> head(y.h(1:800))
[1] 0.02399124 0.02395124 0.02391124 0.02387124 0.02383124 0.02379124
> head(y.l(1:800))
[1] 0.02389124 0.02385124 0.02381124 0.02377124 0.02373124 0.02369124

您可以看到您的三個 function 給出幾乎相同的結果,這是因為您的0.00001*(10-16.8764)對修改您的 output 來說基本上太小了。

如果你在 plot 上放大到足夠大:

yplot <- plot(y.l(1:800),
              type="l", lty=2, 
              xlab="x", ylab="y", main="Getting better :/",
              ylim=c(.023,0.024),
              xlim=c(0,30))

lines(1:800, lty=1, y.a(1:800))
lines(1:800, lty=3, y.h(1:800))

你可以看到三行: 在此處輸入圖像描述

如果你想看到你的線條之間的巨大差異,我認為你需要更改 function 的最后一個參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM