Мне нужно нарисовать два наклона ускорения-против-миль на галочку по графику рассеяния,
один уклон для легких автомобилей и один уклон для тяжелых автомобилей. Я создал это:
cars_light <- cars_log[cars_log$log.weight. <= log(mean(cars$weight)), ]
cars_heavy <- cars_log[cars_log$log.weight. > log(mean(cars$weight)),]
cars_log$wt_cat <- ifelse(cars_log$log.weight. > log(mean(cars$weight)), 'heavy', 'light')
До сих пор я создавал график рассеяния, выполняя это:
plot_ly(
data = cars_log,
type = "scatter",
x = ~log.acceleration.,
y = ~ log.mpg.,
color = ~ factor(wt_cat),
colors = c("#8bc34a", "#ff5722"),
marker = list(size = 10, opacity = 0.6)
) %>%
layout(title = "Heavy cars VS light cars")
Что дает мне этот результат:
Теперь я хочу создать уклон для тяжелых машин и еще один для легких автомобилей, я знаю, что мне нужно использовать трассировку add_ribbons, но я не могу понять, как это сгенерировать. У меня проблемы с вычислением лм с плотно.
Я мог бы сделать то же самое с ggplot, но я не знаю, как это сделать с заговором ..
ggplot(cars_log, aes_string('log.acceleration.', 'log.mpg.')) +
geom_point(aes(color = factor(wt_cat))) +
geom_smooth(method = 'lm', aes(color = factor(wt_cat)))
Это образец моих данных:
> cars_log[1:5,]
log.mpg. log.cylinders. log.displacement. log.horsepower. log.weight. log.acceleration. model_year origin
1 2.890372 2.079442 5.726848 4.867534 8.161660 2.484907 70 1
2 2.708050 2.079442 5.857933 5.105945 8.214194 2.442347 70 1
3 2.890372 2.079442 5.762051 5.010635 8.142063 2.397895 70 1
4 2.772589 2.079442 5.717028 5.010635 8.141190 2.484907 70 1
5 2.833213 2.079442 5.710427 4.941642 8.145840 2.351375 70 1