当前位置: 首页 > news >正文

R语言绘图与可视化第六章总结

R语言绘图与可视化

  • 导入
    • windows函数
  • 调整绘图参数
  • 调整颜色
  • 调整标签与标题文字
  • 其他自定义元素
    • 坐标轴
      • 次要刻度线
      • 网格线
      • 叠加图形
      • 图例(从上面的叠加图形代码执行后开始)
      • 标注
  • 描述性统计图
    • 柱状图
    • 饼图
      • 直方图
      • 箱线图

导入

x <- 1 : 20
y <- x ^ 2
#参数介绍-----------------------
#1. type :表示绘图类型
#2. main :表示图像名称
plot(x, y, type = 'l', main = "y = x ^ 2图像") 

p130

windows函数

打开一个新的窗口作图,不改变原窗口图形

windows()
plot(x, y, type = 'l', main = "y = x ^ 2图像") 
# 图形导出
png("plot.png")
x <- 1 : 20
y <- x ^ 2
plot(x, y)
dev.off() # 保存图像

调整绘图参数

  1. 通过par函数指定图像参数的值
opar <- par(no.readonly = T)
par(lty = 2, pch = 15)
x <- 1 : 20
y <- x ^ 2
plot(x, y)
par(opar) #参数还原
  1. 在plot函数使用时添加参数
    p134
x <- 1:20; y <- x ^ 2
plot(x, y, type = "b", lty = 2, pch = 15, cex = 0.5, lwd = 2)

调整颜色

  1. 颜色参数介绍
    p136

  2. 颜色选择方法
    p136

colors() # 查看颜色编号palette() #查看调色板
pal = palette()
par(mar = c(1, 2, 1, 2))
pie(rep(1, length(pal)), labels = sprintf("%d (%s)", seq_along(pal),pal), col = pal) # pie函数先做了解,下面会讲饼图
#rainbow(n) : 内置函数,返回一个连续颜色向量
rainbow(3) -> pal
pie(rep(1, length(pal)), labels = sprintf("%d (%s)", seq_along(pal), pal), col = pal)

调整标签与标题文字

之前我们在plot函数参数时用main函数设置了主题,下面是对title的进一步优化。

# title()函数   title(main = "", sub = "", xlab = "", ylab = "", line = "", outer = F, col.mian, col.sub, cex.main, cex.sub ...)1. 标题/副标题:title / sub
标签参数分为2. 坐标轴标题 :xlab / ylabx <- 1 : 20; y <- x ^ 2
plot(x,y,ann = F, type = 'b', lty = 2) #ans来禁用plot()函数中设置的标题标签, 比如我这里加上main = "123"参数是无效的
title(main = "y = x ^ 2",col.main = "red",col.sub = "brown",col.lab = "navy",cex.main = 2,cex.sub = 1.25,xlab = "自变量",ylab = "因变量",sub = "图一",font.sub = 3
)

p139

其他自定义元素

坐标轴

axis(side, at = , lables = , pos = , lty = , col = , las = , tck = ,...) 

p140

次要刻度线

install.packages("Hmisc")
library(Hmisc)
x <- 1 : 20
y <- x ^ 2
plot(x, y, type = 'l', main = "y = x ^ 2图像")
minor.tick(nx = 5, ny = 4, tick.ratio = 0.5) # nx: x轴次要刻度线数目, ny: y轴次要刻度线数目,tick.ratio: 次要刻度线长度与主要刻度线长度比例)

网格线

abline(h = seq(0, 400, by = 20), v = seq(0, 20, by = 1), lty = 2, col = "lightgray") # h: 水平线位置, v: 垂直线位置

叠加图形

windows()
x <- 1 : 20
y <- x ^ 2
plot(x, y, type = 'l', main = "y = x ^ 2图像")
points(1 : 20, seq(1, 200, length.out = 20), col = "blue", pch = 17) # 加点
lines(1 : 20, seq(1, 200, length.out = 20), col = "red")             # 加线
abline(v = 10, h = 100, lty = 2 )
...

图例(从上面的叠加图形代码执行后开始)

legend(x = 0.5, y = 385, c("y = x ^ 2", "y = 10 * x"), col = c("black", "red"), lty = c(1,1), pch = c(1, 2), title = "图例", text.col = "blue", bg = "lightgray")参数有很多,不必都记住,现用现找。

p144

标注

text()函数是在绘图区内部进行标注
mtext()函数是在绘图区外部进行标注

x <- 1 : 20
y <- x ^ 2
plot(x, y, type = 'l', main = "y = x ^ 2图像")
text(15, 250, "这是一个标注", col = "red", cex = 1.5)  # text(x坐标, y坐标, "标注内容", 其他参数)
mtext("这是外部标注", side = seq(1,4), line = 0, col = "blue", cex = 0.5) #line表示距离绘图区的行数, side表示标注位置,1-下,2-左,3-上,4-右
text(13,200, expression(y == x ^ 2), col = "darkgreen", cex = 1.5) #数学标注expression()函数

145

描述性统计图

柱状图

windows()
barplot(height = c(3, 5, 2, 8), names.arg = c("A", "B", "C", "D"), col = rainbow(4), main = "柱状图示例")

147

饼图

pie(c(10, 20, 30, 40), labels = c("A", "B", "C", "D"), col = rainbow(4), main = "饼图示例") # 前面介绍rainbow()函数时有用过饼图

149

直方图

hist(rnorm(1000), breaks = 30, col = "lightblue", main = "直方图示例1") # rnorm()函数生成正态分布随机数
同时显示多附图函数
par(mfrow = c(2,1)) # 2行1列
hist(rnorm(1000), breaks = 30, col = "lightblue", main = "直方图示例2")
par(mfrow = c(1,1)) # 还原为1行1列

150

箱线图

x <- rnorm(100)
boxplot(x, main = "箱线图示例") -> fig
fig$stats #查看箱线图统计值
text(1.2, fig$stats, c("下限", "下四分位数", "中位数", "上四分位数", "上限"), col = rainbow(5), pos = 4) # pos参数表示标注位置,1-下,2-左,3-上,4-右

151

下面的三维绘图与动态作图相对复杂,读者看书了解即可,本文不做讲解。

http://www.dtcms.com/a/585314.html

相关文章:

  • 建设工程消防设计备案网站网络服务提供者收集和使用
  • 如何在自己的服务器上部署 n8n
  • LangChain提示词模版 PromptTemplate
  • 做国外购物的网站怎么发货网站建设中期怎么入账
  • 【安全开发】Nuclei源码分析-模板引擎实现(五)
  • 【小技巧】PyCharm建立项目,VScode+CodeX+WindowsPowerShell开发Python pyQT6 (二)
  • 办个人网站租空间餐饮网站建设的模板
  • 国家开发投资集团有限公司广州新站优化
  • MySQL数据类型详解
  • Rust 练习册 :Rail Fence Cipher与栅栏密码
  • 织梦dedecms绿色led照明公司企业网站模板 下载网站如何免费推广
  • 【Svelte】动态加载组件并传递参数的正确姿势,及两种方式比较
  • 【ZeroRange WebRTC】Amazon Kinesis Video Streams C WebRTC SDK 详解与实践指南
  • openEuler边缘计算实践:构建高效边云协同架构
  • 自建国外购物网站公司网站开发外包公司
  • Linux内存管理揭秘:页表递归清理与TLB优化机制
  • 从“医疗大模型”向“医疗智能体”架构与路径分析(白皮书草案-下)
  • Webpack性能优化终极指南:4步实现闪电打包
  • 零基础学JAVA--Day26(枚举类)
  • Kafka概述
  • CTFHub Web进阶-PHP:Bypass_disable_function通关8之PHP FFI
  • 重庆本地网站有哪些world做网站怎么做连接
  • 【028】Dubbo3从0到1系列之序列化机制
  • phpcms模板资源网站快速优化排名
  • 0 基础学前端:100 天拿 offer 实战课(第 18 天)—— JS 事件进阶:冒泡、委托与自定义事件,搞定复杂交互
  • 【C++】STL小总结
  • go基础语法练习
  • 360任意看地图网站网站开发设计需要什么证书
  • 大数据Spark(七十二):Transformation转换算子repartition和coalesce使用案例
  • Android 16 Kotlin协程 第二部分