R语言作图:如何在同一图层画多个geoms

R语言作图:如何在同一图层画多个geoms

首页休闲益智输出全靠画更新时间:2024-06-05

今天这个题目起的有点尴尬,你可能会问什么叫geoms啊,给大家解释一下,因为自己看的是英文内容,然后也没有找到合适的geoms的中文翻译,所以就只得用原来的单词了,怎么理解呢,就是如何在一个图中画出多个不同类型的图,比如:在一个图中既可以画出点图又可以画出线图,就是这个意思。

实例操练

还是用R自带的mpg数据集,数据集变量如下:

  • model 车型
  • displ 排量
  • year 生产年份
  • cyl 气缸数
  • trans 传输类型
  • drv 驱动形式
  • cty 每加仑城市里程
  • hwy 每加仑高速里程
  • fl 燃料类型
  • class 汽车品牌
  • 比如我现在想画出排量和每加仑高速里程的关系的线图和点图,我可以用以下代码:

    ggplot(data = mpg) geom_point(mapping = aes(x = displ, y = hwy)) geom_smooth(mapping = aes(x = displ, y = hwy))

    其实就是多加一个geom就可以,输出如下图:

    可以看到线图和点图在一个图层中得到了展示。

    但是,这么做并不是最简单和最有效的方法,比如,如果你现在需要改变Y轴的参数,此时你就需要改变两个geom中的Y参数,我们就会想可不可以只改变一次参数,然后都起作用呢。可以的,如下:

    ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) geom_point() geom_smooth()

    我们只需要把mapping参数提高到ggplot方法中就行,此时的mapping就可以称作全局mapping,对整个图都起作用,而非仅仅针对某一个图层。此时只需要改变一次Y参数,2个图层的图都会做相应改变。

    还有,同样的,你还可以改变不同图层的数据源,就是线图我用这个数据做,点图用另外一个数据也可以,给大家举个例子:

    ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) geom_point(mapping = aes(color = class)) geom_smooth(data = filter(mpg, class == "subcompact"), se = FALSE)

    上面的代码中,点图我用的mpg的原始数据画的,但是线图只用了原始数据中汽车品牌等于subcompact的数据

    小结

    今天给大家介绍了如何用R在一个图中做出不同类型的图,以及如何在一个图中用不同的数据作图,感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python和R的,加油。

    (站外链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据)

    往期内容:

    查看全文
    大家还看了
    也许喜欢
    更多游戏

    Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved