Устранение неполадок, почему ggplot() не отображает базу данных

Я работал с некоторыми данными tidycensus для задания и дошел до того, что попытка создать плавный линейный график не отображает мой набор данных.

Мой текущий код:

PA_county_list %>%
  filter(county %in% c("Chester County","Bucks County")) %>%
  ggplot() +
  geom_smooth(mapping = aes (x = total.pop , y = mean.white, color = county)) +
  labs(title = "Comparing Percent White Race in Chester County and Buck County",
       subtitle = "2010 ACS 5 year census survey",
       y = "White Race Claims",
       x = "Total Population")


Это пример данных, которые я использую:

county            total.pop    mean.white            mean.income        per_white
<chr>               <dbl>          <dbl>                 <dbl>             <dbl>
Chester County      41413         3694.957             88997.22           3.716587

Bucks County        47969         3946.140             79940.48           3.969241 

Результат напечатанного скрипта приводит к помеченному пустому графику. Где метки целы, но данные из total.pop (популяция) и mean.white (популяция белой расы) не указаны.

На этом этапе любое понимание будет высоко оценено.

Спасибо.


person Charles Cini    schedule 06.02.2021    source источник
comment
Можете ли вы привести пример вашей структуры данных? stackoverflow.com/help/minimal-reproducible-example   -  person Sinval    schedule 07.02.2021
comment
Привет Синвал. Спасибо за ответ, это мой первый пост в стеке, поэтому я не был на 100% уверен, как публиковать. Я отредактировал исходный пост, добавив выборку из двух округов в head() моего набора данных.   -  person Charles Cini    schedule 07.02.2021
comment
Вперед, округ Бакс! Если у вас есть по одному баллу на округ, вы хотите использовать geom_point?   -  person LMc    schedule 07.02.2021
comment
Привет, LMc, я сначала так и думал, но я использую данные столетия ACS за 2010 год, которые были очищены, чтобы представить среднее значение всех строк, содержащих округ Бакс :(. Я в процессе возвращения к исходному не- mean() Эд решил посмотреть, сработает ли это. В противном случае я просто хотел бы представить график, показывающий корреляцию роста населения с представленной белой расой.   -  person Charles Cini    schedule 07.02.2021
comment
ЛМк ты молодец!!!! Я нащупал набор данных, с которым работал. Я вернулся к исходному неусредненному набору данных, и он сгенерировал нужный мне график!   -  person Charles Cini    schedule 07.02.2021


Ответы (2)


У вас есть только две точки в ваших данных, судя по названию вашего сюжета. Если это так, то вы не будете / не сможете сгладить. Вы можете просто соединить эти точки, используя geom_line:

ggplot(df, mapping = aes (x = total.pop , y = mean.white)) +
  geom_point(aes(color = county)) +
  geom_line() +
  labs(title = "Comparing Percent White Race in Chester County and Buck County",
       subtitle = "2010 ACS 5 year census survey",
       y = "White Race Claims",
       x = "Total Population")

введите здесь описание изображения

Если бы у вас было больше точек данных, вы могли бы сгладить их следующим образом:

ggplot(df, mapping = aes (x = total.pop , y = mean.white)) +
  geom_smooth(method = "loess", formula = y ~ x, color = "black") +
  geom_point(aes(color = county)) 

введите здесь описание изображения


Данные

set.seed(1)
df <- data.frame(county = c("Chester", "Bucks", "Berks", "Montgomery", "Delaware", "Schuylkill"),
                 total.pop = rnorm(6, 48000, 3800)) %>% 
  dplyr::mutate(mean.white = rbeta(6, 5, 2) * total.pop)
person LMc    schedule 07.02.2021

Так я понял, что я делаю не так! По-видимому, мой набор данных, указанный для создания графика, был тем, который вычислял средние значения для других задач в задании. Он состоял из одиночных усредненных наблюдений.

Таким образом, исправление этого состояло в том, чтобы вернуться к моему первоначально очищенному набору данных и изменить параметры, чтобы они отражали старые переменные до того, как были взяты средние значения.

person Charles Cini    schedule 07.02.2021