加入收藏 | 设为首页 | 会员中心 | 我要投稿 保山站长网 (https://www.0875zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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() 

(编辑:保山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读