У меня есть небольшая проблема, которую я могу смешно не решить самостоятельно.ggplot2 geom_smooth с переменным как фактор
У меня есть простой фрейм данных, который я хочу построить с помощью ggplot2
. Когда я использую переменную вес как фактор, я получаю все значения по оси x, с. plot 2, но не тогда, когда я использую его как целое, s. участок 1. Тем не менее, я хочу использовать geom_smooth
, который, как представляется, функционирует только с участок 1, но не в участок 2 где вес - фактор.
Как получить график в ggplot2
, который показывает мне все значения веса и дополнительно функции geom_smooth
?
Рассмотрим this пример файла:
require(ggplot2)
x <- get.url(https://dl.dropboxusercontent.com/u/109495328/example.csv)
app_df <- read.csv(x, header=T, sep = ",", quote = "", stringsAsFactors = FALSE, na.strings = "..")
colnames(app_df) <- c("Date", "Weight")
date <- as.Date(strptime(app_df$Date, "%d.%m.%Y"))
weight <- app_df$Weight
df <- na.omit(data.frame(date,weight))
# plot 1 (only few values indicated in x axis)
ggplot(df, aes(date,weight)) +
geom_point() +
geom_line(aes(group = "1")) +
geom_smooth(method = "lm")
# plot 2 (no smooth function)
ggplot(df, aes(date,as.factor(weight))) +
geom_point() +
geom_line(aes(group = "1")) +
geom_smooth(method = "lm")
Непонятно, в чем проблема. На графике 1 вы получаете 16 точек данных и линию тренда ('geom_smooth'). Также на графике 2 вы получаете 16 очков, но этот график неверен, потому что вес должен использоваться как целое, а не фактор. –
Факторные переменные по существу являются категориальными переменными. Вы не можете приспособить к ним линейную или любую функцию. Что касается целых значений, которые не все отображаются, вы можете использовать 'scale_y_continuous' для настройки пределов и разрывов. – Gopala
Привет, Гопала, как бы вы использовали «scale_y_continous» в настоящем примере, чтобы получить те же 16 точек данных по оси x, что и на рисунке 2? –