Что самый простой метод должен заполнить область под geom_freqpoly строкой?

Ось X является временем, разбитым во временные интервалы. Существует столбец интервала в кадре данных, который указывает время для каждой строки. Столбец является фактором, где каждый интервал является различным факторным уровнем.

Графическое изображение гистограммы или строки с помощью geom_histogram и geom_freqpoly работает отлично, но я хотел бы иметь строку, как обеспеченный geom_freqpoly, с заполненной областью.

В настоящее время я использую geom_freqpoly как это:

ggplot(quake.data, aes(interval, fill=tweet.type)) + geom_freqpoly(aes(group = tweet.type, colour = tweet.type)) + opts(axis.text.x=theme_text(angle=-60, hjust=0, size = 6))

plots

Я предпочел бы иметь область заливки, такой в соответствии с geom_density, но не сглаживая строку:

smoooth

geom_area был предложен, там любой способ использовать ggplot2-сгенерированную статистическую величину, такой как.. количество.., для y-значений geom_area? Или, агрегирование количества должно произойти до использования ggplot2?


Как указано в ответе, geom_area (..., статистика = "мусорное ведро") решение:

ggplot(quake.data, aes(interval)) + geom_area(aes(y = ..count.., fill = tweet.type, group = tweet.type), stat = "bin") + opts(axis.text.x=theme_text(angle=-60, hjust=0, size = 6))

производит:

desired

9
задан mattrepl 20 August 2015 в 13:30
поделиться

3 ответа

Возможно, вы захотите:

geom_area(aes(y = ..count..), stat = "bin")
15
ответ дан 4 December 2019 в 10:30
поделиться

ggplot (quake.data, aes (interval, fill = tweet .type, group = 1)) + geom_de density ()

Но я не думаю, что это значимая графика.

1
ответ дан 4 December 2019 в 10:30
поделиться

Я не совсем понимаю, к чему вы стремитесь. Вы хотите линию или полосы. Вы должны проверить geom_bar для заполненных баров. Что-то вроде:

p <- ggplot(data, aes(x = time, y = count))
p + geom_bar(stat = "identity")

Если вы хотите, чтобы внизу была заполнена строка, вам следует посмотреть на geom_area , который я лично не использовал, но похоже, что конструкция будет почти такой же.

p <- ggplot(data, aes(x = time, y = count))
p + geom_area()

Надеюсь, что это поможет. Дайте дополнительную информацию, и мы, вероятно, сможем быть более полезными.

На самом деле я бы добавил индекс, просто строку данных и использовал бы это как x, а затем использовал бы

p <- ggplot(data, aes(x = index, y = count))
p + geom_bar(stat = "identity") + scale_x_continuous("Intervals", 
breaks = index, labels = intervals)
1
ответ дан 4 December 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: