Составьте среднее значение переменной с помощью ggplot2 - PullRequest
1 голос
/ 18 апреля 2020

У меня есть два столбца, которые я хотел бы построить на гистограмме: «Property_type» и «Price». Используя приведенный ниже код, я нанесу «общую цену» вместо «медианной цены» для каждого типа недвижимости. Не могли бы вы помочь мне исправить код?

theme_set(theme_bw())

# Draw plot
ggplot(data, aes(x=Property_type, y=Price)) + 
  geom_bar(stat="identity", width=.5, fill="tomato3") + 
  labs(title="Ordered Bar Chart", 
       subtitle="Average Price by each Property Type", 
       caption="Image: 5") + 
  theme(axis.text.x = element_text(angle=65, vjust=0.6))

Image Here

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Хотя ответ dc37 даст вам то, что вы хотите, я просто хотел бы отметить, что вы также можете использовать семейство функций stat_* в ggplot для вычисления сводной статистики по группам.

library(ggplot2)

df <- data.frame(
  Property = rep(LETTERS[1:10], each = 10),
  Price = rnorm(100, rep(1:10, each = 10))
)

ggplot(df, aes(Property, Price)) +
  stat_summary(fun = median, geom = "col")

Создано в 2020-04-18 пакетом Представления (v0.3.0)

1 голос
/ 18 апреля 2020

Используя dplyr, вы можете вычислить среднюю цену для каждого свойства, а затем передать эту новую переменную как значение y в ggplot2:

library(dplyr)
library(ggplot2)

data %>% 
  group_by(Property) %>% 
  summarise(MedPrice = median(Price, na.rm = TRUE)) %>%
  ggplot(aes(x = reorder(Property,-MedPrice), y = MedPrice)) +
  geom_col(fill = "tomato3", width = 0.5)+
  labs(title="Ordered Bar Chart", 
       subtitle="Average Price by each Property Type", 
       caption="Image: 5") + 
  theme(axis.text.x = element_text(angle=65, vjust=0.6))

Отвечает ли она на ваш вопрос?

Если нет, предоставьте воспроизводимый пример вашего набора данных, следуя этому руководству: Как создать отличный воспроизводимый пример R

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...