Можно ли изменить ширину линии для более гладких линий в случае диагностического графика (ggplot2)?
Я хотел бы настроить диагностические графики в ggplot2. Я попробовал это:
library(ggfortify)
library(ggplot2)
model1 <- lm(len~dose*supp, data = ToothGrowth)
autoplot(model1, which = 1, label.size = 3, data = ToothGrowth, size=3, colour = "dose",
smooth.colour = 'darkblue', smooth.linetype="dotted", smooth.linesize=3)
Я получил эту картину:
Я изменил цвет и тип линии для более гладкой линии, но я не знаю, как я могу изменить ширину линии. Я пробовал "smooth.linesize", но он не работает. Можно ли как-нибудь изменить ширину линии?
Кто-нибудь может мне помочь? Благодарю вас.
1 ответ
Одним из вариантов будет добавить еще один слой на ваш график, так как autoplot.lm
не предоставляет желаемый аргумент smooth.linesize
, Первая часть генерирует ваш сюжет, p
,
p <- autoplot(model1, which = 1, label.size = 3, data = ToothGrowth, size=3, colour = "dose",
smooth.colour = 'darkblue', smooth.linetype="dotted")
Нужные данные сглаженной линии теперь можно найти где-то глубоко внутри p
Вот: p@plots[[1]]$layers[[2]]$data
Это можно использовать как data
аргумент в призыве к geom_*
, Следующий код генерирует график ниже.
p + geom_line(data = p@plots[[1]]$layers[[2]]$data, aes(x = x, y = y), linetype = 3, col = "red", size = 3)
Другой вариант - добавить еще не существующий параметр эстетики. size
на соответствующий слой объекта сюжета самостоятельно. Я думаю, что этот вариант ближе к тому, что вы хотите достичь.
Это можно сделать через
p@plots[[1]]$layers[[2]]$aes_params$size <- 3
p
Надеюсь, это поможет.