参考链接:
https://github.com/gkaramanis/tidytuesday/blob/master/week-42/big-epa-cars.R
#######################################################################
学习到的技能(需要掌握的函数)
#######################################################################
pivot_longer()
函数: 宽数据变长数据。forcats包
对于处理factor
相关操作非常方便,绘图排序经常用到row_number()
函数:通用排名,并列的名次结果按先后顺序不一样,靠前出现的元素排名在前
画图思路
数据清洗就不说了,一如既往的结合
filter() + group_by() + summarize() + ungroup() + mutate()
等常用函数
数据清洗
提一下:
在只看到这里数据清洗的视化并未理解为啥要产生lane
这个变量,直到,看了后面可视化geom_image(data = city_race, aes(x = lane, y = city_mpg_median, image = car), size= .05, asp = 0.6)
后,才发现原来是给图中的小车子标识位置,一种公路分两列,又一次跪拜。
1 | # 没有这些包的先自行安装。 |
产生的数据格式是这样的
导入图中的小车 png
图片
注意:
这里先将图片保存在自己当前环境的路径下1
2
3# Icon by mynamepong, flaticon.com
# here() 函数上一次介绍过就不介绍了,就是当前路径
car = here::here("car.png")
绘图
大致思路:
用geom_rect()
绘制一个大的灰色背景幕布 →geom_rect()
绘制城市公路,哈哈(就是途中的黑色)→ 再绘制公路中间的虚线(白色虚线)→ 同城市公路绘制高速公路 → 通过geom_image()
把小车图标加上去,哈哈()萌死我了 → 使用geom_text()
加上车子类型注释,注意其中的参数hjust
参数一左一右 → 使用geom_segment
加上刻度尺,这里太机智了,我的妈欸(分了左右,而不是在一条线上)→xlim()
函数标注 x 轴的范围 →labs()
加上标题啊、小标题啊、脚注啊等等 → 主题优化总之逻辑特别清晰,一步紧跟一步,绘图代码部分,一步一步运行就好,简单粗暴易理解,真的是学习的好案例
。( 作者脑洞真的大,也可能是我脑子太小了 )
1 | ggplot() + |