首页 > 其他分享 >R语言---07作图plot()、ggplot()、boxplot()

R语言---07作图plot()、ggplot()、boxplot()

时间:2024-03-23 10:32:17浏览次数:24  
标签:plot aes iris -- ggplot --- Length geom

 一、画图安装包

如果你在运行代码过程中,报错显示R包不存在,则需要先安装R包再运行代码。

本文需要用到的R包 ,用library()函数加载并检查一下你的电脑里面是否有该R包。

library(ggplot2)
library(ggpubr)
library(eoffice)
library(patchwork)

 如果缺少R包,可以使用一下代码:

#设置镜像
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
#安装R包
if(!require(ggplot2))install.packages('ggplot2',update = F,ask = F)
if(!require(ggpubr))install.packages('ggpubr',update = F,ask = F)
if(!require(eoffice))install.packages("eoffice",update = F,ask = F)
if(!require(patchwork))install.packages("patchwork",update = F,ask = F)

二、介绍函数基础包-绘图函数

1.高级绘图函数

plot()--多种图形

hist()--频率直方图

boxplot()--箱线图

stripchart()--点图

barplot()--柱状图

piechart()--饼图

matplot()--数学图形

2.低级绘图函数

lines()--添加线

curve()--添加曲线

abline()--添加给定斜率的线

points()--添加点

segments()--折线

arrows()--箭头

axis()--坐标轴

box()--外框

title()--标题

text()--文字

【低级绘图函数不能单独使用,要结合高级函数一起使用】

三、plot()函数

#基础包
plot(iris[,1],iris[,3],col = iris[,5]) 
text(6.5,4, labels = 'hello')

dev.off() #关闭画板

 得到的图如下:

四、ggplot()函数

1.ggplot()函数的基础认识

以下代码使用R语言的内置函数iris。 

aes()函数描述的是横纵坐标

属性参数
颜色color
大小size
形状shape
透明度alpha
填充颜色fill

#入门级绘图模板:作图数据,横纵坐标
library(ggplot2)
ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length))

 2.属性设置(颜色、大小、透明度、点的形状,线型等)

(1)点状图,增加颜色

geom_point的参数是具体颜色,【color=“blue”】

ggplot(data = iris) + 
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length), 
             color = "blue")

 

 (2)点状图,增加大小、透明度、点的形状

ggplot(data = iris) + 
  geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length), 
             size = 2,     # 点的大小5mm
             alpha = 0.5,  # 透明度 50%
             shape = 8)  # 点的形状

 

 (3)映射:按照数据框的某一列来定义图的某个属性

 按照数据框的Species那一列来定义图的颜色,该颜色是由系统默认的

aes的参数是列名,即【color=Species】

ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                         color = Species))

 

(4)自行指定映射的具体颜色

使用scale_color_manual()函数

ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species))+
  scale_color_manual(values = c("blue","grey","red"))

 

 3.color和fill两个属性

(1)实心和空心形状

 空心形状和实心形状都用color设置颜色

比较常见的实心和空心的字号代表

ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species),
             shape = 17) #17号,实心的例子
ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species),
             shape = 2) #2号,空心的例子
# 1--空心圆圈
# 2--空心三角形
# 3--十字架
# 15--实心正方形
# 16--实心圆圈
# 17--实心三角形

 (2) 既有边框又有内心的,才需要color和fill两个参数

使用黑色填充,填充函数为fill() 


ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species),
             shape = 24,
             fill = "black") #24号,双色的例子

五、几何对象 (可以叠加)

1.局部设置和全局设置

使用geom_smooth()函数基于线性回归方法拟合数据点之间的趋势。

(1)局部设置--仅对当前图层有效

ggplot(data = iris) + 
  geom_smooth(mapping = aes(x = Sepal.Length, 
                          y = Petal.Length))+
  geom_point(mapping = aes(x = Sepal.Length, 
                           y = Petal.Length))

(2)全局设置--对所有图层有效 

#第二种写法
ggplot(data = iris,mapping = aes(x = Sepal.Length, 
                                 y = Petal.Length))+
  geom_smooth()+
  geom_point()

六、箱线图 boxplot()

1.箱线图+点状图

ggplot(data = iris,mapping = aes(x = Species, 
                                 y = Sepal.Width,
                                 fill = Species)) + 
  geom_boxplot()+
  geom_point()

ggplot(data = iris,mapping = aes(x = Species, 
                                 y = Sepal.Width,
                                 fill = Species)) + 
  geom_boxplot()+
  # geom_point(position = "jitter")
  geom_jitter()

即X轴与Y轴颠倒一下,即coord_flip()翻转坐标系

ggplot(data = iris,mapping = aes(x = Species, 
                                 y = Sepal.Width,
                                 fill = Species)) + 
  geom_boxplot()+
  geom_jitter()+ 
  coord_flip()

 可以对比一下上一张图

七、主题

theme_bw()改主题,去掉灰色格子

ggplot(data = iris,mapping = aes(x = Species, 
                                 y = Sepal.Width,
                                 fill = Species)) + 
  geom_boxplot()+
  geom_jitter() 
  theme_bw()

 

 

标签:plot,aes,iris,--,ggplot,---,Length,geom
From: https://blog.csdn.net/Rita_rr/article/details/136852021

相关文章

  • 【毕业设计】73-基于51单片机智能液晶温控风扇设计(说明书+PPT+仿真工程+源代码+原理图
    【毕业设计】73-基于51单片机智能液晶温控风扇设计(说明书+PPT+仿真工程+源代码+原理图)主要研究内容:1.单片机;2.直流电机;3.DS18B20;4.液晶显示器LCD。设计思路:查阅相关文献资料学习单片机、直流电机,温度传感器,液晶显示器LCD,编程实现单片机控制的智能温控风扇系统设计功能,......
  • 【毕业设计】74-基于单片机的红外遥控步进电机控制系统设计与实现(详细说明书+PPT+原理
    【毕业设计】74-基于单片机的红外遥控步进电机控制系统设计与实现(详细说明书+PPT+原理图+仿真+源代码+全套资料)基于单片机的红外控制系统的研究意义在于可以通过用红外控制的方式直接对物体进行控制,而不需要人为的操控。在工业的使用环境中,在许多复杂噪音多的环境中同样可......
  • PostgreSQL中的CTE(公共表表达式)知多少? - (中级)
    与我联系:微信公众号:数据库杂记   个人微信: iiihero我是iihero. 也可以叫我Sean.iihero@CSDN(https://blog.csdn.net/iihero) Sean@墨天轮 (https://www.modb.pro/u/16258)数据库领域的资深爱好者一枚。水木早期数据库论坛发起人 db2@smth就是俺,早期多年水木......
  • 基础篇--Python重要知识点总结
    Python语言不同于Java和C,它属于高层次的脚本语言,简单易学。但是如果你去找python教程,那真的是要好好啃很久,但是其实最常用的和最重点的东西没有那么多,最近看了北大的一个老师讲的课程进行了以一些总结,手动Run一Run以下知识点,基本上就可以上手撕数据分析或者人工智能相关的编......
  • Uni-app 之uni-push1.0服务端推送
    一、配置1、uni-push1.0文档https://uniapp.dcloud.net.cn/unipush-v1.html2、服务端推送文档https://docs.getui.com/getui/server/rest_v2/push/二、示例//0:站内信,1:消息$type=isset($type)?$type:0;$clickType='intent';$payload=array('type'=>�......
  • 【Golang星辰图】实现弹性微服务架构:使用go-micro和go-kit构建可扩展的网络应用
    构建高效网络应用:探索分布式系统和微服务的利器前言在当今的互联网时代,构建可扩展且可靠的网络应用变得越来越重要。分布式系统和微服务架构成为了解决大规模应用程序开发和管理的有效方法。本文将介绍一些用于构建分布式系统和微服务的关键工具和库,例如go-rpc、go-micro......
  • Linux 学习之路 -- 权限2
    目录1.文件的权限<1>chown命令<2>chmod命令另一种修改权限方式<3>chgrp命令2.文件类型3.关于文件的误区和一些问题1.文件的权限前面已经粗略的介绍了一下文件权限的修改命令chmod,这里继续上面的介绍。这里我们把拥有者的权限修改成只有可执行,再去掉用文件看看......
  • CF-936(AB)
    CF-936(已更新:AB)诶……今天还有一个积分赛……自己学科方面也满是坑要补……感觉自己前途一片灰暗/(ㄒoㄒ)/~~A分析只要增大与初始序列中位数的值相同的数,就能在不改变序列顺序的情况下增大中位数的值代码#include<bits/stdc++.h>usingnamespacestd;#defineendl'......
  • Uni-app 之APP打开小程序与分享小程序页面
    一、配置1、微信开放平台,创建移动应用与绑定小程序2、manifest.json,填写移动应用的appid二、打开小程序plus.share.getServices(res=>{varis_weixin=res.find(i=>i.id==='weixin');if(is_weixin){is_weixin.launchMiniProgram({id:weixin_id,......
  • 2024-03-23 闲话
    突然思考如果我要写论文,那么intro的background怎么写。仔细分析了一下,发现每篇论文的第一段是大同小异的,所以直接粘过来改改措辞就行了。剩下的motivation就可以自己发挥了。practitionern.执业人员,从业者incaseof以防万一inthecaseof在某种情况下frictio......