解决 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(白人人口)的数据。

在这一点上,任何见解将不胜感激。

谢谢。

解决方法

所以我发现我做错了什么!显然,我为图表生成列出的数据集是计算作业中其他问题的平均值的数据集。它由单个平均观测值组成。

因此,解决此问题的方法是返回到我最初清理的数据集并更改参数以在取平均值之前反映旧变量。

,

根据您的情节标题判断,您的数据中只有两个点。如果是这种情况,那么你就不会/不能平滑。您可以使用 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")

enter image description here

如果你有更多的数据点,你可以像这样平滑:

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

enter image description here


数据

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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...