R语言作图:如何在数据可视化过程中调整因子规律
发布时间:2021-06-04 18:22:33 所属栏目:大数据 来源:互联网
导读:实例操练 这个例子使用的数据集为tidyverse包自带的数据集,大家可以使用?gss_cat查看相关变量,这儿不再赘述。 在数据可视化过程中改变因子顺序是一个经常性的操作,比如我们想看看不同religions的average number of hours spent watching TV per day有什么
实例操练
这个例子使用的数据集为tidyverse包自带的数据集,大家可以使用?gss_cat查看相关变量,这儿不再赘述。
在数据可视化过程中改变因子顺序是一个经常性的操作,比如我们想看看不同religions的average number of hours spent watching TV per day有什么不同,我们可以用以下代码:
relig_summary <- gss_cat %>%
group_by(relig) %>%
summarise(
age = mean(age, na.rm = TRUE),
tvhours = mean(tvhours, na.rm = TRUE),
n = n()
)
ggplot(relig_summary, aes(tvhours, relig)) + geom_point()
运行代码得到输出的点图如下:
上面的这个点图其实很不好看,我们可能会觉得能不能把religions的顺序变一变,让有最小tvhours的religion在y轴的最下面,有最大tvhours的在最上面。
怎么做呢,需要用到fct_reorder()方法,这个方法取2个参数:
第一个就是你想改变顺序的因子,本例中:religions
第二个,改变顺序的参照物,本例中:tvhours
代码如下:
ggplot(relig_summary, aes(tvhours, fct_reorder(relig, tvhours))) +
geom_point()
可以看到,改变了religions的顺序后这个图就更加清晰明白了。
再看一个例子:
rincome_summary <- gss_cat %>%
group_by(rincome) %>%
summarise(
age = mean(age, na.rm = TRUE),
tvhours = mean(tvhours, na.rm = TRUE),
n = n()
)
ggplot(rincome_summary, aes(age, fct_reorder(rincome, age))) + geom_point()
上面的代码,可以画出按年龄排序后不同rincome和age的关系:
但是,问题出在按年龄排序后我们的收入(y轴)显得很乱,所以这个方法并不好,考虑到收入本来就是有顺序的,所以好的处理方法为保留收入的原始顺序,于是我们写出了如下代码:
rincome_summary <- gss_cat %>%
group_by(rincome) %>%
summarise(
age = mean(age, na.rm = TRUE),
tvhours = mean(tvhours, na.rm = TRUE),
n = n()
)
ggplot(rincome_summary, aes(age, rincome)) + geom_point()
![]() (编辑:保山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |