解决 ggplot() 未绘制数据集的原因
Troubleshooting why ggplot() isn't plotting datase
我一直在使用一些 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
(白人人口)的数据。
至此,如有任何见解,我们将不胜感激。
谢谢。
所以我知道我做错了什么!显然,我为图形生成列出的数据集是计算作业中其他问题的平均值的数据集。它由单个平均观察值组成。
所以解决这个问题的方法是回到我最初清理过的数据集并更改参数以反映取平均值之前的旧变量。
根据您的情节标题判断,您的数据中只有两点。如果是这样的话,那你就不会't/couldn不顺利了。您可以使用 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)
我一直在使用一些 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
(白人人口)的数据。
至此,如有任何见解,我们将不胜感激。
谢谢。
所以我知道我做错了什么!显然,我为图形生成列出的数据集是计算作业中其他问题的平均值的数据集。它由单个平均观察值组成。
所以解决这个问题的方法是回到我最初清理过的数据集并更改参数以反映取平均值之前的旧变量。
根据您的情节标题判断,您的数据中只有两点。如果是这样的话,那你就不会't/couldn不顺利了。您可以使用 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)