Ggplot2 и geom_density: как удалить базовую линию?
Я использую ggplot
, как описано здесь
http://docs.ggplot2.org/current/stat_density.html
и введен в консоль R
m <- ggplot(movies, aes(x = rating))
m + geom_density()
Это работает, но есть ли способ удалить соединение между осью x и графиком плотности (вертикальные линии, которые соединяют график плотности с осью x)
Ответы
Ответ 1
Самый последовательный способ сделать это (спасибо @baptiste):
m + stat_density(geom="line")
Мое первоначальное предложение состояло в том, чтобы использовать geom_line
с соответствующим stat
:
m + geom_line(stat="density")
но он больше не рекомендуется, так как я получаю отчеты, которые он не работает повсеместно для каждого случая в новых версиях ggplot.
Ответ 2
Другим способом было бы рассчитать плотность отдельно и затем нарисовать ее. Что-то вроде этого:
a <- density(movies$rating)
b <- data.frame(a$x, a$y)
ggplot(b, aes(x=a.x, y=a.y)) + geom_line()
Это не совсем то же самое, но довольно близко.
Ответ 3
Предлагаемые ответы не дают точно таких же результатов, как geom_density
. Почему бы не нарисовать белую линию над базовой линией?
+ geom_hline(yintercept=0, colour="white", size=1)
Это сработало для меня.