`plot()`中的选项`lty`无法正常工作

Dat*_*neR 2 plot r

我试图将图形生成为中断线.但令我惊讶的lty=2是,函数中的选项plot()不起作用:

plot(1:10,lty=2) 
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?

Rei*_*son 7

为什么会这样?你在画.lty只会影响线条的绘制.例如,如果您这样做,它确实有效;

plot(1:10, type = "b", lty = 2)
Run Code Online (Sandbox Code Playgroud)

这使

在此输入图像描述

我选择type = "b"这里来说明差异; 它意味着线条和点.注意如何lty影响线部分,但不影响点本身.如果你看着?plot.default你会看到

 plot(x, y = NULL, type = "p",  xlim = NULL, ylim = NULL,
      log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
      ann = par("ann"), axes = TRUE, frame.plot = axes,
      panel.first = NULL, panel.last = NULL, asp = NA, ...)
Run Code Online (Sandbox Code Playgroud)

这表示type = "p"对于点,如果用户未指定,则为默认值.

使用字体字符或字形绘制点,而不是包裹在圆圈中的线.这些点的字符与绘图上的任何其他文本字符(例如轴和刻度标签)类似.因为它们不是使用线条绘制的,lty所以不会影响它们.

symbols()是,可替换的功能使用线画点.例如

plot(1:10, type = "n")
symbols(1:10, 1:10, circles = rep(0.1, 10), lty = 2, inches = FALSE, add = TRUE)
Run Code Online (Sandbox Code Playgroud)

哪个产生

在此输入图像描述

你不需要单独plot()调用,只需省去调用的add = TRUE部分symbols(),但是如果这样做,它会给出不同的轴限制,与plot()上面的相比.

symbols(1:10, 1:10, circles = rep(0.1, 10), lty = 2, inches = FALSE)
Run Code Online (Sandbox Code Playgroud)