如何解决解决 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")
如果你有更多的数据点,你可以像这样平滑:
ggplot(df,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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。