草庐IT

R语言学习—— ggplot2函数

今天学会Python了吗 2023-04-15 原文

最近在自学R语言,但是从纯粹的理论开始学习太慢了而且没有实操不太行,所以目前是在实际应用中查漏补缺,遇到什么临时学什么,然后把笔记都一一记录下啦。分享出来一边是方便自己查找,另一方面也是想方便和我一样入门的菜鸟哈哈哈,这个系列将持续更新哦。其中有些图表来源于网络,如有侵权联系可删 ~


目录

一、R语言介绍

二、快捷键

二、R语言包的学习

(一)ggplot2

1、数据

2、函数

三、知识点合集

(一)回归的种类



一、R语言介绍

  1. R语言对大小写比较敏感,命名可以数字、字母和  .   以及  _   开头,但是如果以  .  开头,那么后面不可以接数字。
  2. 基本命令要么是表达式要么就是赋值。
  3. 命令可以被  ;  隔开,也可以直接跳到下一行。
  4. 基本命令可以通过大括弧{ }构成一个复合表达式。
  5. R的基本数据类型包括数值型(numeric)、字符型(character)、复数型(complex)、逻辑型(logical);对象类型有向量、因子、数组、矩阵、数据框、列表、时间序列。

二、快捷键

  1. 退出R程序:q()
  2. 自动补全:tab
  3. 清空console:ctrl+L
  4. 中断当前计算:ESC
  5. 执行代码: Ctrl+Enter 或者Run
  6. 查找:Ctrl+F
  7. 保存:Ctrl+S
  8. 撤销:Ctrl+Z
  9. 恢复:Ctrl+Y
  10. 删除整行:Ctrl+D
  11. 批量选择:alt
  12. 注释:Ctrl+Shift+C
  13. 更新:点击Update
  14. 查看某个包:help(package=“rpart”)
  15. 设置断点:browser(  )或debug(  )
  16. 加载R数据包:require(  )或library(  )
  17. 重新运行上一段代码: Ctrl + Shift + P 
  18. 执行整个文件: Ctrl + Shift + Enter 
  19. 获取工作路径:在Console中输入getwd( )
  20. 安装Package:点击Install输入包名,或者在Console中输入install.packages('  ')
  21. 中文注释换乱码:【Tools】→【Global Options...】→【Code】→【Saving】,选择UTF-8.
  22. R中常用的符号:
  23. R中常用的函数:


二、R语言包的学习

(一)ggplot2

一款图形可视化的R包,核心理念是将绘图与数据分离,按图层作图,其中图层包括三层——数据层、几何图形层和美学层,有利于结构化思维,同时保有命令式作图的调整函数,使其更具灵活性,绘制出来的图形美观,同时避免繁琐细节。包含以下几个概念,以下这些不同层之间都是使用“+”连接起来的,也就是最终是以图层的形式进行叠加展示。

  1. 数据(Data)和映射(Mapping):数据映到图像
  2. 标度(Scale):数据取值映射到图形空间,其中最主要的是图形属性(aesthetic attributes,记作aes),例如用:颜色、大小、形状表示不同取值
  3. 几何对象(Geometric Object,记作geom):统计图中看到的实际元素,比如点、线、多边形等
  4.  统计变换(Statistics Transformation,记作stats:对数据进行某种汇总,如直方图,或将二维关系用线性模型解释
  5.  坐标系统(Coordinate System,记作coord:指的是数据如何映射到图形所在平面,提供作图所需的坐标轴和网格线
  6.  图层(Layer):将数据分解为子集,进行联合展示
  7.  分面(Facet):对所需的绘图操作进行一层一层叠加,最终得到所需图形,将绘图窗口分成若干个子窗口。

1、数据

在使用ggplot2的过程中,接受的数据集必须是以data.frame格式的。

2、函数

(1)ggplot( ):找到映射的对应关系,data=(数据集),新手训练的时候可以使用ggplot2中自带的mpg数据集进行练习。

(2)aes( ):映射函数,分别使用 x =(x轴坐标内容)y =(y轴坐标内容)制定需要映射的变量。

(3)geom_point ( ):散点图绘制函数。

library(ggplot2)
ggplot(data=mpg,mapping=aes(x=cty,y=hwy))+geom_point()

这个地方的代码还可以拓展一下,函数的变化还是非常灵活的。

比如,按照年份这个变量变换颜色。

ggplot(data=mpg,mapping=aes(x=cty,y=hwy,color=factor(year)))+geom_point()

 其实这里的"data=","x=","y="都可以省略,同时试着把factor省略。另外,这里的“color( )”放在ggplot( )中和geom_point( )中都是可以的,两个代码的图都是一样的哦。

ggplot(mpg,mapping=aes(cty,hwy,color=year))+geom_point()
ggplot(mpg,mapping=aes(cty,hwy))+geom_point(aes(color=year))

(4)geom_histogram( ):直方图绘制函数,针对连续变量。

library(ggplot2)
ggplot(data=mpg,mapping=aes(x=hwy))+geom_histogram()

(5)geom_bar( ):柱形图绘制函数,也称柱形图,针对离散变量。

(6)geom_density( ):密度图绘制函数。

(7)geom_box( ):箱线图绘制函数。

其他的一些几何对象变换可选。

(8)stat_smooth( ):拟合曲线。

ggplot(mpg,mapping=aes(cty,hwy,color=year))+geom_point()+stat_smooth()

其他的统计变换函数可选。

(9)facet_wrap( ):分面函数。

ggplot(mpg,mapping=aes(cty,hwy,color=year))+geom_point()+stat_smooth()+facet_warp(~year)

两张图在一行有点拥挤,可以指定行和列。其中,指定列使用ncol= ,指定行用nrow= 。

ggplot(mpg,mapping=aes(cty,hwy,color=year))+geom_point()+stat_smooth()+facet_wrap(~year,ncol=1)

(10)主题函数: labs( )、xlab()、ylab()、theme( )

ggplot(mpg,mapping=aes(cty,hwy,color=year))+geom_point()+stat_smooth()+facet_wrap(~year,ncol=1)+labs(x='每加仑城市公路行驶距离',y='每加仑高速公路行驶距离',title='汽车油耗与型号')

 再来调整一下标题的位置和美观程度。

ggplot(mpg,mapping=aes(cty,hwy,color=year))+geom_point()+stat_smooth()+facet_wrap(~year,ncol=1)+labs(x='每加仑城市公路行驶距离',y='每加仑高速公路行驶距离',title='汽车油耗与型号')+theme(plot.title = element_text(hjust = 0.5))

ggplot(mpg,mapping=aes(cty,hwy,color=year))+geom_point()+stat_smooth()+facet_wrap(~year,ncol=1)+labs(x='每加仑城市公路行驶距离',y='每加仑高速公路行驶距离',title='汽车油耗与型号')+theme_bw()+theme(plot.title = element_text(hjust = 0.5),panel.grid = element_blank())

同时,ggplot2中提供很多可以直接使用的主题。比如theme_grey ()是默认主题,theme_bw( )是白色背景主题,theme_classic( )是经典主题。


三、知识点合集

(一)回归的种类

  1. 简单线性:一个量化的解释变量预测一个量化的响应变量(一个因变量、一个自变量)
  2. 多项式:一个量化的解释变量预测一个而量化的响应变量,模型关系是n阶多项式(一个预测变量,但同时包含变量的幂)
  3. 多元线性:两个或多个解释变量预测多个相应变量
  4. Logistic:一个或多个解释变量预测一个类别型变量
  5. 泊松:一个或多个解释变量预测一个代表频数的响应变量
  6. Cox比例风险:一个或多个解释变量预测一个事件发生的时间序列对误差项相关的时间序列数据建模
  7. 非线性:一个或多个量化的解释变量预测一个量化的响应变量,不过模型是非线性的
  8. 非参数:一个或多个量化的解释变量预测一个量化的响应变量,模型的形式源自数据形式,不事先设定
  9. 稳健:一个或多个量化的解释变量预测一个量化的响应变量,能抵御强影响点的干扰
  10. OLS回归:通过预测变量的加权和来预测量化的因变量,其中权重使通过数据估计而得以的参数,主要是使残差平方和最小。
  11. 用lm()拟合回归模型:格式是myfit <- lm(formula,data),formula指要拟合的模型形式,data是一个数据框,包含了用于拟合模型的数据,formula形式如下:Y~X1+X2+……+Xk (~左边为响应变量,右边为各个预测变量,预测变量之间用+符号分隔)。

有关R语言学习—— ggplot2函数的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

    我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

  3. ruby-on-rails - 在 ruby​​ 中使用 gsub 函数替换单词 - 2

    我正在尝试用ruby​​中的gsub函数替换字符串中的某些单词,但有时效果很好,在某些情况下会出现此错误?这种格式有什么问题吗NoMethodError(undefinedmethod`gsub!'fornil:NilClass):模型.rbclassTest"replacethisID1",WAY=>"replacethisID2andID3",DELTA=>"replacethisID4"}end另一个模型.rbclassCheck 最佳答案 啊,我找到了!gsub!是一个非常奇怪的方法。首先,它替换了字符串,所以它实际上修改了

  4. ruby - 在 Ruby 中有条件地定义函数 - 2

    我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin

  5. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  6. ruby - 在 Ruby 中按名称传递函数 - 2

    如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只

  7. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  8. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  9. C51单片机——实现用独立按键控制LED亮灭(调用函数篇) - 2

    说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时

  10. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

随机推荐