使用R的不同绘图系统在0处绘制垂直和水平线

时间:2019-03-06 03:12:11

标签: r regression linear-regression

我已经检查了问题的答案,而我能找到的最接近的是:Why does plot behave differently for same but scaled data?。我了解原子对象,已经转换为数据框。

我已经加载了一些化学反应数据:

   library(car)

    theURL <- "http://lib.stat.cmu.edu/datasets/Andrews/T30.1"
    theNames <- c("Table", "Number", "Row", "Experiment", "Temperature", 
    "Concentration", "Time", "Unchanged", "Converted", "Unwanted")
    Reaction <- read.table(theURL, header = F , col.names = theNames)
    Reaction <- Reaction[-c(1:4)]

然后我绘制一个散点图;实线通过X的平均值和Y的平均值;点处的虚线表示±2SD。也是在±5SD时绘制的Sy / Sx斜率段,因为我无法abline()来绘制它。

    scatterplot(Reaction$Temperature, Reaction$Converted, smooth = FALSE, 
    regLine = FALSE, grid = FALSE, xlim = c(150, 185), xlab = "Temperature", ylab = "% Converted", main = "Reaction Results", ylim = c(45, 70))
    TempMean = mean(Reaction$Temperature)
    ConvMean = mean(Reaction$Converted)
    TempSD = sd(Reaction$Temperature)
    ConvSD = sd(Reaction$Converted)
    abline(col = c("red", "green"), v = TempMean, h = ConvMean)
    abline(col = "green", lty = "dotted", v = (c(TempMean - 2*TempSD, TempMean + 2*TempSD)))
    abline(col = "red", lty = 3, h = (c(ConvMean - 2*ConvSD, ConvMean + 2*ConvSD)))
    segments(TempMean - 5*TempSD, ConvMean - 5*ConvSD, TempMean + 5*TempSD, ConvMean + 5*ConvSD)

Bonferroni(?) Limits for bivariate data

...现在是大揭露。如果我按比例缩放所有内容,则散点图基本上会做同样的事情。

    # Scale Reaction Data
    Reaction.scaled <- as.data.frame(scale(Reaction))
    # Mean and sd Lines
     scatterplot(Reaction.scaled$Temperature, Reaction.scaled$Converted, smooth = FALSE, regLine = FALSE, grid = FALSE, xlab = "Temperature", ylab = "% Converted", main = "Reaction Results")
    TempMean = mean(Reaction.scaled$Temperature)
    ConvMean = mean(Reaction.scaled$Converted)
    TempSD = sd(Reaction.scaled$Temperature)
    ConvSD = sd(Reaction.scaled$Converted)
    abline(col = c("red", "green"), v = TempMean, h = ConvMean)
    abline(col = "green", lty = "dotted", v = (c(TempMean - 2*TempSD, TempMean + 2*TempSD)))
    abline(col = "red", lty = 3, h = (c(ConvMean - 2*ConvSD, ConvMean + 2*ConvSD)))
    segments(TempMean - 5*TempSD, ConvMean - 5*ConvSD, TempMean + 5*TempSD, ConvMean + 5*ConvSD)

Scaled Plot

...但是图形未显示(0,0)的缩放平均值。我怀疑这与高级图形功能还是低级图形功能有关。

1 个答案:

答案 0 :(得分:3)

和往常一样,这个问题是由于我对文档的误解。

?scatterplot

  

reset.par
  如果TRUE(默认设置),则将绘图参数重置为   散点图退出时的先前值;如果FALSE,则mar   和mfcol参数已为当前绘图设备更改。 设置    如果要向 中添加图形元素(例如线条),则为FALSE    图。

实际上,将reset.par = FALSE添加到上述基于汽车的散点图中即可。自己尝试一下,在家享受乐趣吧!

引起问题的相关图形,并进行了更正: Scaled data with solid lines at means, dotted lines at means±2SDs