Большие данные по оси x на ggplot () в R studio - PullRequest
1 голос
/ 10 января 2020

Я пытаюсь использовать barplot () в R studio для построения графика, отражающего среднюю цену квартиры на район (из базы данных airbnb, загруженной из inte rnet). Спасибо другому сотруднику Chris Ruehlemann, который предложил мне пример кода ниже. Но, когда я попытался запустить их на больших данных, я не могу правильно увидеть название окрестности на оси X. У кого-нибудь есть предложения по более точной настройке оси x, чтобы мы могли правильно видеть имена?

[barplotnoname] [1]

[https://i.stack.imgur.com/PezKd.png]

Вот код:

tmp <- data.frame(L$neighbourhood, L$price)
tmp
tmp_new <- aggregate(x = tmp$L.price, by = list(tmp$L.neighbourhood), function(x) mean(x))
tmp_new
barplot(tmp_new$x, name.arg = names(tmp_new$Group.1), main = "Avg Apt Price per Neighbourhood", xlab = "Neighbourhood", ylab = "Price")

*** Перед всем этим необходимо обязательно загрузить базу данных airbnb из (https://plmbox.math.cnrs.fr/f/65765b530bbb4ed8b489/?dl=1). Затем загрузите его в R studio, используя команду: load ('AirBnB.Rdata')

Пожалуйста, смотрите мой предыдущий пост по этому вопросу: Использование barplot в R studio

1 Ответ

1 голос
/ 10 января 2020

Как насчет этого?

p <- L %>% 
  transmute(neighbourhood, 
            price = as.numeric(gsub("[^0-9.]", "", price))) %>% 
  group_by(neighbourhood) %>% 
  summarize(price = mean(price)) %>% 
  ggplot(aes(y = price, x = neighbourhood)) + 
  geom_col() + 
  theme(axis.text.x = element_text(size = 8, angle = 90))
p 

enter image description here

Ваша исходная переменная данных "L $ price" - это фактор-переменная со знаком доллара (%). Я преобразовал его в цифру c, прежде чем строить. Я использовал ggplot просто потому, что я немного знаком с ним.

library(tidyverse)
p <- L %>% 
  transmute(neighbourhood, 
         price = as.numeric(gsub("[^0-9.]", "", price))) %>% 
  group_by(neighbourhood) %>% 
  summarize(price = mean(price)) %>% 
  ggplot(aes(x = price, y = neighbourhood)) + 
  geom_col()
p 

enter image description here

...