热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ggplot2包(1)

参考书籍:《ggplot2:数据分析与图形艺术》一张统计图形是从数据到几何对象(geometricobject,缩写为geo

参考书籍:《ggplot2:数据分析与图形艺术》


一张统计图形是从数据到几何对象(geometric object,缩写为geom,包括点、线、条形等)的图形属性(aesthetic attributes,缩写为aes,包括颜色、形状、大小等)的一个映射。此外,图形中还可能包含数据的统计变换(statistical transformation,缩写为stats),最后绘制在某个特定的坐标系(coordinate system,缩写为coord)中,而分面(facet,指将绘图窗口划分为若干个子窗口)则可以用来生成数据不同子集的图形。总而言之,一张统计图形就是由上述这些独立的图形部件所组成的。


从qplot开始入门

qplot()——quick plot快速作图,qplot可以看作是plot到ggplot2的中间过度,qplot与plot很像,它既有plot的特征,也有ggplot的概念,通过qplot可以快速入门,学习到ggplot2的一些术语,比如:

  1. ggplot2中的图形属性名称(如colour,shape和size)比基础绘图系统中的名称(如col,pch和cex等)更直观,且更容易记忆。
  2. .在基础绘图系统中,可以通过points(),lines()和text()函数来向已有的图形中添加更多的元素。而在ggplot2中,需要在当前的图形中加入额外的图层。

library("ggplot2")
diamonds#钻石信息数据集
names(diamonds)
#"carat" "cut" "color" "clarity" "depth" "table" "price" "x" "y" "z"
#carat重量、cut切工、color颜色、clarity净度、price价格以及五个物理指标——深度depth、钻面宽度(table)、x、y和z
qplot()
qplot(x = carat,y = price,data = diamonds)

在这里插入图片描述

qplot(x = log(carat),y = log(price),data = diamonds)

在这里插入图片描述

set.seed(0)#种子
d=diamonds[sample(nrow(diamonds),100),]
qplot(x = carat,y = price,data = d,colour=color)

在这里插入图片描述

qplot(x = carat,y = price,data = d,shape=cut)#形状

在这里插入图片描述

qplot(x = carat,y = price,data = d,alpha=I(1/10))#透明度

在这里插入图片描述

几何对象b
geom=“point”画散点图,当提供x,y时为缺省选项
geom=“smooth”画平滑曲线及标准误
geom=“boxplot”画箱线图
geom="path"或geom=“line”画连线
geom=“histogram”画直方图,当只提供x时为缺省选项
geom=“fregpoly”画频率多边形
geom=“density”画密度曲线
geom=“bar”画柱形图

qplot(x = carat,y = price,data = diamonds,geom = c("point","smooth"))
#阴影部分为误差

在这里插入图片描述

qplot(x = carat,y = price,data = d,geom = c("point","smooth"),span=0.2)
#span控制曲线的平滑程度,弯曲程度

在这里插入图片描述

1ibrary(mgcv)
qplot(x = carat,y = price,data = d,geom = c("point","smooth"),
method="gam",formula=y~s(x))
#利用method参数可以选择许多不同的平滑器:
method="1oess",当n较小时是默认选项,使用的是局部回归的方法
使用method="gam",formula=y~s(x)来调用mgcv包拟合一个广义可加模型。

qplot(x = carat,
data = diamonds,geom = "histogram",binwidth=0.01,xlim=c(0,3))#直方图

在这里插入图片描述

qplot(x = carat,
data = diamonds,geom = "histogram",binwidth=0.1,xlim=c(0,3),fill=color)#设置颜色
#colour控制外框线的颜色,用fi11设置填充颜色,以及用size调节线的粗细。

在这里插入图片描述

qplot(carat,data=diamonds,geom="density")#密度曲线
#adjust参数控制曲线的平滑程度(adjust取值越大,曲线越平滑)
#binwidth参数通过设定 组距 来调节平滑度。
#breaks参数切分位置

在这里插入图片描述

economics数据集
qplot(x = date,y = unemploy/pop,data = economics,geom = "line")#时间序列

在这里插入图片描述

#分面
#分面是将数据分割成若干子集,然后创建一个图形的矩阵,将每一个子集绘制到图形矩阵的窗格中。
#所有子图采用相同的图形类型,并进行了一定的设计,使得它们之间方便进行比较。
qplot(x =carat,data = diamonds,
facets = color~.,geom = "histogram",binwidth=0.1,xlim = c(0,3))

在这里插入图片描述

#qplot的一些参数与plot作用相同
#xlim、ylim、xlab、ylab、main、logqplot(x=carat,y=price,data=d,colour=color,xlab="x轴",
ylab="y轴",main="标题",log="xy")

在这里插入图片描述


推荐阅读
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
author-avatar
平凡小迪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有