Подтвердить что ты не робот

Ggplot2 и geom_density: как удалить базовую линию?

Я использую ggplot, как описано здесь

http://docs.ggplot2.org/current/stat_density.html

и введен в консоль R

m <- ggplot(movies, aes(x = rating))
m + geom_density()

Это работает, но есть ли способ удалить соединение между осью x и графиком плотности (вертикальные линии, которые соединяют график плотности с осью x)

4b9b3361

Ответ 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)

Это сработало для меня.