R语言——绘图与数据可视化

news2024/11/27 21:06:56

1、练习将25个点的符号绘制出来,然后用rainbow()返回25个颜色,后5个符号形状的背景颜色用蓝色填充,图的标题为"符号图",x轴标题为符号索引,y轴标题为符号形状。

2、根据员工的销售业绩画饼状图,添加图例(右上角),并将图例的形状改为pch=c(15:17),其中员工的销售业绩和姓名如下表:

姓名

业绩

小明

100

小红

200

小亮

300

效果图示例

3、随机生成1000个数据,均值为10 标准差为3。练习绘制直方图。

要求:(1)每个直方图用不同的颜色展示;(2)每个条柱上显示具体的数值;(3)绘制频数和频率直方图,并在频率直方图上添加曲线。

4、使用R语言内置的Titanic数据集,分析男性乘客和女性乘客的获救情况。要求:(1)绘制性别、获救情况的柱状图;(2)条柱上显示男性和女性的获救人数与遇难人数;(3)图的标题为性别与获救情况;(4)获救用绿色填充,遇难用红色填充。(5)添加图例,图例标题为获救情况。参考下图:

5、随机生成1000个数据,均值为10 标准差为5。练习绘制箱型图。要求:(1)图形主标题为箱形图;(2)使用text( )函数添加最大值、最小值、上下四分位数以及中位数;(3)打印出离群点。

6、练习使用R语言内置数据集stackloss,画出stackloss数据集各变量的直方图、箱型图、散点图,一次性画4个图。

 

1、

代码:

# 安装 ggplot2 和 viridis 包

#install.packages("ggplot2")

#install.packages("viridis")

# 导入所需的包

library(ggplot2)

library(viridis)

# 创建数据框

data <- data.frame(

  index = 1:25,

  shape = rep(c("circle", "square", "triangle", "diamond", "star"), 5)

)

# 绘制图形

p <- ggplot(data, aes(x = factor(index), y = shape, fill = shape)) +

  geom_point(shape = 21, size = 5) +

  scale_fill_viridis(discrete = TRUE) +

  theme_minimal() +

  labs(title = "符号图", x = "符号索引", y = "符号形状")

# 显示图形

print(p)

截图:

2、

代码:

# 员工销售业绩和姓名

sales <- c(100, 200, 300)

names <- c("小明", "小红", "小亮")

# 画饼状图

pie(sales, labels=names)

# 添加图例并更改图例形状

legend("topright", names, pch=15:17, title="员工销售业绩")

截图:

3、

代码:

# 生成符合要求的随机数据

mean_value <- 10

std_dev <- 3

data <- rnorm(1000, mean=mean_value, sd=std_dev)

# 绘制频数直方图

hist(data, breaks=30, col="skyblue", xlab="Value", ylab="Frequency", main="Histogram of Data")

text(data, 10, labels=round(data, 1), cex=0.6, srt=90, adj=c(0.5,0.5))

# 绘制频率直方图并添加曲线

par(mfrow=c(1, 2))

hist(data, breaks=30, freq=FALSE, col="lightgreen", xlab="Value", ylab="Frequency", main="Frequency Histogram with Density Curve")

lines(density(data), col="red")

截图:

4、

代码:

# 导入所需的包

library(ggplot2)

# 加载Titanic数据集

data("Titanic")

# 转换数据集为数据框格式

df <- as.data.frame(Titanic)

# 重新构造数据框

df <- subset(df, df$Survived == "Yes" | df$Survived == "No")

df <- subset(df, df$Class == "1st" | df$Class == "2nd" | df$Class == "3rd")

# 计算男性和女性的获救情况

survived_counts <- aggregate(Survived ~ Sex, data = df, FUN = function(x) sum(x == "Yes"))

died_counts <- aggregate(Survived ~ Sex, data = df, FUN = function(x) sum(x == "No"))

# 绘制柱状图

barplot_heights <- c(survived_counts$Survived, died_counts$Survived)

barplot_labels <- c(paste("幸存:", survived_counts$Survived), paste("遇难:", died_counts$Survived))

# 创建数据框

bar_data <- data.frame(

  Sex = rep(c("Female", "Male"), each = 2),

  Survival = rep(c("Survived", "Died"), times = 2),

  Counts = barplot_heights,

  Labels = barplot_labels

)

# 绘制柱状图

p <- ggplot(bar_data, aes(x = Sex, y = Counts, fill = Survival)) +

  geom_bar(stat = "identity", position = "dodge") +

  geom_text(aes(label = Labels), position = position_dodge(width = 0.9), vjust = -0.5, size = 3) +

  scale_fill_manual(values = c("green", "red"), name = "获救情况") +

  labs(title = "性别与获救情况", x = "性别", y = "人数") +

  theme_minimal()

# 显示图形

print(p)

截图:

5、

代码:

# 生成随机数据

data <- rnorm(1000, mean=10, sd=5)

# 绘制箱形图

boxplot(data, main="箱形图")

text(1, max(data), paste("最大值:", round(max(data), 2)))

text(1, quantile(data, 0.75), paste("上四分位数:", round(quantile(data, 0.75), 2)))

text(1, median(data), paste("中位数:", round(median(data), 2)))

text(1, quantile(data, 0.25), paste("下四分位数:", round(quantile(data, 0.25), 2)))

text(1, min(data), paste("最小值:", round(min(data), 2)))

截图:

6、

代码:

# 导入所需的包

library(ggplot2)

# 加载stackloss数据集

data("stackloss")

# 创建一个数据框来存储stackloss数据

df <- data.frame(stackloss)

# 绘制直方图

hist_plot <- ggplot(df, aes(x = stack.loss)) +

  geom_histogram(fill = "lightblue", color = "black", bins = 10) +

  labs(title = "stack.loss的直方图", x = "stack.loss", y = "频数")

# 绘制箱型图

boxplot_plot <- ggplot(df, aes(x = factor(1), y = stack.loss)) +

  geom_boxplot(fill = "lightgreen", color = "black") +

  labs(title = "stack.loss的箱型图", x = "", y = "stack.loss") +

  theme(axis.text.x = element_blank())

# 绘制散点图

scatter_plot <- ggplot(df, aes(x = Air.Flow, y = stack.loss)) +

  geom_point(color = "darkorange") +

  labs(title = "Air.Flow与stack.loss的散点图", x = "Air.Flow", y = "stack.loss")

# 绘制柱状图

barplot_plot <- ggplot(df, aes(x = factor(1), y = stack.loss, fill = row.names(df))) +

  geom_bar(stat = "identity", width = 0.5) +

  coord_polar(theta = "y") +

  labs(title = "stackloss数据集中各变量的柱状图", x = "", y = "stack.loss") +

  theme(axis.text.x = element_blank())

# 打印四个图形

multiplot(hist_plot, boxplot_plot, scatter_plot, barplot_plot, cols=2)

截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1848555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vitis Accelerated Libraries 学习笔记--OpenCV 运行测试

目录 1. 简介 2. 实例测试 2.1 实例介绍 2.1 创建工程 3 常见错误 3.1 核心共享库报错 4. 总结 1. 简介 在《Vitis Accelerated Libraries 学习笔记--OpenCV 安装指南-CSDN博客》一文中&#xff0c;我详尽地介绍了 OpenCV 的安装过程。尽管 Vitis Vision 库的实现本身并…

BioCLIP 生物界的图文对比模型

参考&#xff1a; https://imageomics.github.io/bioclip/ CLIP模型引入到生物领域&#xff0c;针对生物分类&#xff1a;界门纲目科属种&#xff0c;进行文本与图像的对比学习训练对其&#xff0c;可以快速对图像进行分类到可能的界门纲目科属种 在线体验&#xff1a; https:…

用户态协议栈04-定时arp-table的实现

之前有写过arp reply的实现&#xff0c;其中有写道&#xff0c;我们的系统内核中会维护一张ARP表&#xff0c;可以通过终端arp -a查看&#xff1a; 其中的dynamic和static是动态arp的类型&#xff0c;之前的udp实验就是添加了一条静态arp达到了发送的目的。在我们需要发送一个数…

「五度易链」企业大数据API接口开放平台上线啦!

“五度易链”企业大数据API接口开放平台现已正式上线&#xff0c;旨在为广大企业、开发者及个人提供标准、安全、高效、便捷的企业数据API接口服务&#xff0c;帮您更轻松地构建应用、扩展功能&#xff0c;并基于用户应用场景提供专属接口定制服务&#xff0c;助力企业提升研发…

12.爬虫---PyMysql安装与使用

12.PyMysql安装与使用 1.安装 PyMySQL2.使用PyMySQL2.1创建数据表2.2连接数据库2.3增加数据2.4修改数据2.5查询数据2.6删除数据2.7关闭连接 3.总结 MySQL 安装可以看这篇文章MySql 安装与使用&#xff08;非常详细&#xff09; 1.安装 PyMySQL PyMySQL是Python中用于连接MySQL…

Redis-数据类型-Hash

文章目录 1、查看redis是否启动2、通过客户端连接redis3、切换到db3数据库4、插入新数据返回15、获取指定哈希&#xff08;hash&#xff09;对象的所有字段&#xff08;field&#xff09;名6、获取存储在指定哈希&#xff08;hash&#xff09;对象中的所有字段&#xff08;fiel…

Redis—Hash数据类型及其常用命令详解

文章目录 Redis概述Hash类型Hash类型常用命令1 HSET&#xff1a;添加或者修改hash类型key的field的值2 HGET &#xff1a;获取一个hash类型key的field的值3 HMSET&#xff1a;批量添加多个hash类型key的field的值4 HMGET&#xff1a;批量获取多个hash类型key的field的值5 HGETA…

数据通信与网络(五)

交换机功能&#xff1a; 地址学习&#xff08;端口/MAC地址映射表&#xff09; 通信过滤&#xff08;基于端口/MAC地址映射表&#xff09; 生成树协议&#xff08;断开环路&#xff09; 隔离冲突域 生成树协议 隔离冲突域 交换机配置模式(用不同级别的命令对交换机进行配置) 普…

VScode安装与汉化

VScode安装与汉化 文章目录 VScode安装与汉化一、软件安装方法一&#xff1a;网站下载方法二&#xff1a;直接用安装包下载 二、汉化方法一&#xff1a;&#xff08;个人感觉繁琐&#xff09;方法二&#xff1a;&#xff08;用这个&#xff09; Tips&#xff1a;禁用自动更新开…

力扣372. 超级次方

Problem: 372. 超级次方 文章目录 题目描述思路复杂度Code 题目描述 思路 1.处理数组指数&#xff1a;如下图可以将其转换为一个递归的操作 2.处理 mod 运算:对于模运算我们有公式&#xff1a; ( a b ) % k ( a % k ) ( b % k ) % k (a \times b) \% k (a \% k) \times (b…

[C++][数据结构][跳表]详细讲解

目录 0.什么是跳表&#xff1f;1.SkipList的优化思路2.SkipList的效率如何保证&#xff1f;3.SkipList实现4.SkipList VS 平衡搜索树 && Hash 0.什么是跳表&#xff1f; SkipList本质上也是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;跟平衡搜索树…

Zookeeper原理

Zookeeper监听原理 监听原理详解 &#xff08;1&#xff09;首先要有一个main()线程 &#xff08;2&#xff09;在main线程中创建Zookeeper客户端&#xff0c;这时就会创建两个线程&#xff0c;一个负责网络连接通信(connet)&#xff0c;一个负责监听(listener) 。 &#xf…

x64汇编fastcall调用约定

x64汇编环境&#xff1a;只需要在x86基础上对项目属性进行设置&#xff0c;将平台设置为所有平台&#xff1b; 以及在将debug改为x64模式即可&#xff1a; 后续写完代码直接生成项目再使用本地调试器进行运行即可。 fastcall调用约定 在x64架构下&#xff0c;fastcall调用约定…

html渲染的文字样式大小不统一解决方案

React Hooks 封装可粘贴图片的输入框组件&#xff08;wangeditor&#xff09;_react 支持图片拖拽的输入框-CSDN博客 这篇文章中的wangediter可粘贴图片的输入框&#xff0c;输入的文字和粘贴的文字在dangerouslySetInnerHTML渲染后出现了字体不统一的情况 在html中右键检查可…

前端 CSS 经典:flex + margin 布局

前言&#xff1a;如今我们布局大多时候都是用的 flex 布局&#xff0c;但是有时我们也可以使用 margin 小技巧去完成布局。在弹性盒中当我们把 margin 某一个方向上设置为 auto&#xff0c;他的含义是用 margin 吃掉这个方向的剩余空间。 1. 元素垂直和水平居中 <!DOCTYPE…

昇思25天学习打卡营第4天|网络构建|函数式自动微分

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) 网络构建 神经网络模型是由神经网络层和Tensor操作构成的&#xff0c;mindspore.nn提供了常见神经网络层的实现&#xff0c;在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff0c;也…

Spring AOP实战--之优雅的统一打印web请求的出参和入参

背景介绍 由于实际项目内网开发&#xff0c;项目保密&#xff0c;因此本文以笔者自己搭建的demo做演示&#xff0c;方便大家理解。 在项目开发过程中&#xff0c;团队成员为了方便调试&#xff0c;经常会在方法的出口和入口处加上log输出&#xff0c;由于每个人的log需求和输…

svm和决策树基本知识以及模型评价以及模型保存

svm和决策树基本知识以及模型评价以及模型保存 文章目录 一、SVM1.1&#xff0c;常用属性函数 二、决策树2.1&#xff0c;常用属性函数2.2&#xff0c;决策树可视化2.3&#xff0c;决策树解释 3&#xff0c;模型评价3.1&#xff0c;方面一&#xff08;评价指标&#xff09;3.2&…

js浅拷贝和深拷贝的区别

JavaScript中的浅拷贝和深拷贝的主要区别在于它们如何处理引用类型的数据。 浅拷贝仅复制对象的引用&#xff0c;而不复制对象本身。这意味着新旧对象共享同一块内存空间。因此&#xff0c;如果修改了原始对象&#xff0c;复制的对象也会相应地改变&#xff0c;因为它们实际上是…

Webstorm vue项目@路径不能跳转到对应资源,提示Cannot find declaration to go to

Webstorm vue项目路径不能跳转到对应资源,提示Cannot find declaration to go to 我们 ctrl加鼠标左键点击方法会失效&#xff0c;看了网上很多教程在说需要在此处配置一下webpack.config.js的文件路径&#xff0c;而且指向了node_modules\vue\cli-service\webpack.config.js 我…