Я проверил ответ на мою проблему, и самое близкое, что я смог найти, было здесь: Почему график ведет себя по-разному для тех же, но масштабированных данных? .Я понимаю атомные объекты и уже преобразую их во фрейм данных.
Я загрузил некоторые химические данные реакции:
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.Также сегмент склона Sy / Sx нарисован на ± 5SD, потому что я не смог получить 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)
...и теперь большой открой.Если я масштабирую все, диаграмма рассеяния по существу делает то же самое.
# 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)
... но на чертеже не показано масштабированное среднеев (0,0).Я подозреваю, что это как-то связано с высокоуровневыми и низкоуровневыми графическими функциями.