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

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)

截图:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【AI】AI在创造还是毁掉音乐?

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

嵌入式学习真的这么烧钱吗?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;在我的学习过程中身边有不…

Java宝藏实验资源库(4)对象数组

一、实验目的 学习面向对象程序设计的方法。学习建立对象数组的方法。 学习在数组中存储和处理对象。 二、实验内容、过程及结果 **10.7 (Game: ATM machine) Use the Account class created in Programming Exer cise 9.7 to simulate an ATM machine. Create ten accou…

MAC地址解析工具:ARP命令

网络中每台设备都有一个唯一的网络标识&#xff0c;这个地址叫MAC地址或网卡地址&#xff0c;由网络设备制造商生产时写在硬件内部。形象地说&#xff0c;MAC地址就如同身份证上的身份证号码&#xff0c;具有唯一性。 无论是局域网&#xff0c;还是广域网中的计算机之间进行通信…

Windows系统下安装RabbitMQ详细步骤

声明&#xff1a;原文参考链接出自&#xff1a; 如何在Windows系统下安装RabbitMQ_rabbitmq windows安装-CSDN博客 https://zhuanlan.zhihu.com/p/693160757 一、RabbitMQ安装软件资源准备 因为RabbitMQ是Erlang语言开发的&#xff0c;因此安装Erlang环境在进行安装RbbitMQ的…

小程序大作为|小程序开发详细流程,新手也能轻松掌握

随着移动互联网的快速发展&#xff0c;小程序作为一种轻量级应用&#xff0c;因其无需下载安装、即点即用、用完即走的特点&#xff0c;受到了广大用户的青睐。那么开发小程序都有哪些开发流程呢&#xff1f;可以用哪种方式开发&#xff1f;选择合适的开发方式&#xff0c;一起…

java连接mysql报错

1.背景&#xff0c;直接升级操作系统从centos-》国产化操作系统&#xff0c;mysql也升级到5.7.44 2&#xff0c;报错 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconn…

如何使用 ArcGIS Pro 和 Landsat 8 影像计算叶绿素指数和全球环境监测指数

GIS 工具和技术的出现极大地帮助了识别、量化和解决问题。GIS 还通过研究可能的情况并实施预防方案提供了一种主动的解决方案。多年来&#xff0c;GIS 通过电信和网络服务、事故/事件分析、城市规划、交通规划、环境影响评估、洪水损失估计、自然资源管理、环境健康和安全、植被…

【STM32-DAP 仿真器】

STM32-DAP 仿真器 ■ STM32-DAP仿真器介绍■ STM32-DAP仿真特点■ STM32-DAP仿真器实物图■ STM32-DAP高速 DAP 仿真器实物图■ STM32-DAP高速无线调试器 实物图■ STM32-DAP高速无线调试器示意图■ STM32-DAP高速无线调试器接线图■ STM32-DAP高速无线调试器接收端示意图 ■ S…

oracle开放某些视图给特定用户,查询报视图不存在问题

以sysdba身份登录到Oracle数据库。 创建新用户。例如&#xff0c;创建一个名为new_user的用户&#xff0c;密码为password&#xff1a; CREATE USER new_user IDENTIFIED BY password;为新用户分配表空间和临时表空间。例如&#xff0c;将表空间users和临时表空间temp分配给新…

循环的三种写法

一、for(i): for (int i0;i< arrayList.size();i){System.out.println(arrayList.get(i));} 最基本的循环方法。 二、for-each: 又称加强for &#xff0c;更简单的遍历集合。 三、迭代器: 迭代器是调用Java中的Iterator接口&#xff0c;该接口定义了三个方法分别是hasNex…

阿里云PAI主机网页访问测试

笔者使用的阿里云平台PAI主机(首次使用免费三个月额度)&#xff0c;由于其默认不设置公网IP&#xff0c;所以在该主机上启动HTTP服务后无法访问测试。 这里使用ssh来作隧道穿透&#xff0c;首先需要配置ssh。 云主机配置ssh 1. 修改root账号密码 在云主机上执行 passwd ro…

写一个可以批量修改图片分辨率的工具

说在前面 &#x1f388;在视觉内容至关重要的今天&#xff0c;图片尺寸的调整对于网站加载速度和用户体验有着直接影响。本文介绍的Node.js工具&#xff0c;通过简单的命令行操作&#xff0c;允许用户批量调整图片尺寸&#xff0c;支持单张图片和整个目录的操作&#xff0c;提供…

ARM32开发--FreeRTOS-事件组

系列文章目录 知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 目标 内容 概念 事件标志位 开发流程 功能介绍 创建事件组 触发事件 等待事件触发 同步 清理事件 案例 总结 前言 在嵌入式系统开发中&#xff0c;任务之间的同步和通信是至关重要的…

从新手小白到红酒大咖:解锁红酒品鉴的终极秘籍,升级之路全攻略

在五彩斑斓的饮品世界中&#xff0c;红酒以其深邃的色泽、丰富的口感和悠久的历史&#xff0c;吸引了无数人的目光。对于红酒的初学者来说&#xff0c;从小白到品鉴师的道路或许充满了未知与挑战&#xff0c;但只要掌握了正确的知识和方法&#xff0c;就能够轻松踏入这个美妙的…

测试的基础知识大全【测试概念、分类、模型、流程、测试用例书写、用例设计、Bug、基础功能测试实战】

测试基础笔记 Day01阶段⽬标⼀、测试介绍⼆、测试常⽤分类2.1 阶段划分单元测试集成测试系统测试验收测试 2.2 代码可⻅度划分⿊盒测试&#xff1a;主要针对功能&#xff08;阶段划分->系统测试&#xff09;灰盒测试&#xff1a;针对接⼝测试&#xff08;阶段划分->集成测…

海思NNIE精度对比详细操作指南

海思NNIE部署推理经常会遇到精度下降问题,但是又摸不着头脑究竟是什么原因,因此需要做精度分析来排查是不是算子问题或者是具体哪个算子问题。本文撰写详细操作说明文档,具体可以参考资料:海思NNIE之Mobilefacenet量化部署-腾讯云开发者社区-腾讯云 1.打开日志等级 不知道…

OpenAI 联合创始人 Ilya Sutskever 的新初创公司致力于“安全超级智能”

OpenAI 前首席科学家伊利亚-苏茨克沃尔&#xff08;Ilya Sutskever&#xff09;在今年 5 月离开了他共同创立的人工智能研究公司后&#xff0c;透露了他的下一个重要项目。 相关阅读&#xff1a;GPT-4o通过整合文本、音频和视觉实现人性化的AI交互&#xff0c;OpenAI推出了其新…

STM32 I2C总线锁死原因及解决方法

本文介绍STM32 I2C总线锁死原因及解决方法。 在使用STM32 I2C总线操作外设时&#xff0c;有时会遇到I2C总线锁死&#xff08;I2C总线为Busy状态&#xff09;的问题&#xff0c;即便复位MCU也无法解决&#xff0c;本文介绍其锁死的原因和解决方法&#xff0c;并给出相应的参考代…

融资融券有哪些优势和风险,融资融券利息怎么算,利率最低是?4.0

融资融券的优势 1. 提高资金利用率&#xff1a;获得额外的资金或股票交易&#xff0c;提高资金利用率&#xff0c;扩大投资规模。 2. 降低投资风险&#xff1a;通过融资融券买入多只股票分散风险&#xff0c;降低单一股票持仓风险。 3. 增加投资收益&#xff1a;提供更多的交…