R绘图 | 单列数据的分布图,对A变量分bin求B变量的平均值

问题1:单个向量的 density 分布图?

(1) 模拟数据

set.seed(202402)
dat=diamonds[sample(nrow(diamonds), 1000),]> head(dat)
# A tibble: 6 × 10carat cut       color clarity depth table price     x     y     z<dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1  0.35 Ideal     I     VS2      59.8    57   630  4.6   4.59  2.75
2  0.59 Ideal     D     SI1      61.8    56  1816  5.37  5.4   3.33
3  0.39 Ideal     D     VS1      62      57  1095  4.67  4.71  2.91
4  1.12 Premium   G     IF       60.9    57  9126  6.79  6.68  4.1 
5  0.51 Very Good E     VVS2     62.1    55  2056  5.14  5.16  3.2 
6  1.03 Premium   G     VVS2     60.4    59  7729  6.58  6.56  3.97

(2) 绘制price的分布曲线

效果图:
在这里插入图片描述

ggplot(data = dat, mapping = aes(x=price)) + geom_histogram(aes(y=..density..),binwidth = 400,#bins=30,fill="bisque",color="white",alpha=0.7) + geom_density() +geom_rug() +labs(x='Price') +theme_minimal(base_size = 12)

问题2:按照A的值分bin统计B的平均值,并画图

求不同克拉区间的钻石,其价格的分布及平均值。

  • 对变量 carat 分区间
  • 统计每个 carat 区间的 price 价格的平均值
  • 画图

(1) 使用cut函数对carat列划分到10个区间中,求每个区间price均值

效果图:
在这里插入图片描述
重要函数:cut(x, breaks=n) 对连续向量x分为n个bin,返回每个x值对应的bin范围,因子型。

> # 按照A的值分bin统计B的平均值,并画图 ----
> dat$tags = cut(dat$carat, breaks = 10) #分10个区间
> head(dat)
# A tibble: 6 × 11carat cut       color clarity depth table price     x     y     z tags         <dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl> <fct>        
1  0.35 Ideal     I     VS2      59.8    57   630  4.6   4.59  2.75 (0.217,0.499]
2  0.59 Ideal     D     SI1      61.8    56  1816  5.37  5.4   3.33 (0.499,0.778]
3  0.39 Ideal     D     VS1      62      57  1095  4.67  4.71  2.91 (0.217,0.499]
4  1.12 Premium   G     IF       60.9    57  9126  6.79  6.68  4.1  (1.06,1.34]  
5  0.51 Very Good E     VVS2     62.1    55  2056  5.14  5.16  3.2  (0.499,0.778]
6  1.03 Premium   G     VVS2     60.4    59  7729  6.58  6.56  3.97 (0.778,1.06] 求每个carat区间中price的平均值
> results=sapply(split(dat$price, dat$tags), function(x){
+   mean(x)
+ })
> levels(dat$tags)[1] "(0.217,0.499]" "(0.499,0.778]" "(0.778,1.06]"  "(1.06,1.34]"   "(1.34,1.61]"   "(1.61,1.89]"   "(1.89,2.17]"  [8] "(2.17,2.45]"   "(2.45,2.73]"   "(2.73,3.01]"  
> head(results)
(0.217,0.499] (0.499,0.778]  (0.778,1.06]   (1.06,1.34]   (1.34,1.61]   (1.61,1.89] 793.9373     2105.2756     4961.7216     6500.9048     9756.3146    10490.7308 
> #results[levels(dat$tags)]
> plot( as.numeric( results), type="o", pch=19,
+       xlab="bin index", ylab="Price", mgp=c(2,1,0))
> 
> 

(2) 绘制每个carat bin的price的小提琴图

效果图:
在这里插入图片描述

代码:

数据同上(1):> summary(dat)carat               cut      color      clarity        depth           table           price             x        Min.   :0.2200   Fair     : 35   D:129   SI1    :227   Min.   :55.90   Min.   :52.00   Min.   :  345   Min.   :3.900  1st Qu.:0.4000   Good     : 89   E:178   VS2    :220   1st Qu.:61.10   1st Qu.:56.00   1st Qu.:  987   1st Qu.:4.720  Median :0.7000   Very Good:206   F:181   SI2    :173   Median :61.90   Median :57.00   Median : 2362   Median :5.680  Mean   :0.8033   Premium  :254   G:203   VS1    :156   Mean   :61.82   Mean   :57.42   Mean   : 3939   Mean   :5.745  3rd Qu.:1.0600   Ideal    :416   H:136   VVS2   :104   3rd Qu.:62.60   3rd Qu.:59.00   3rd Qu.: 5443   3rd Qu.:6.560  Max.   :3.0100                   I:119   VVS1   : 62   Max.   :79.00   Max.   :73.00   Max.   :18432   Max.   :9.540  J: 54   (Other): 58                                                                  y               z                    tags    Min.   :3.880   Min.   :2.310   (0.217,0.499]:319  1st Qu.:4.740   1st Qu.:2.920   (0.499,0.778]:254  Median :5.700   Median :3.520   (0.778,1.06] :176  Mean   :5.747   Mean   :3.552   (1.06,1.34]  :105  3rd Qu.:6.560   3rd Qu.:4.050   (1.34,1.61]  : 89  Max.   :9.380   Max.   :5.900   (1.61,1.89]  : 26  (Other)      : 31  

绘图代码:

library(ggplot2)
ggplot(dat, aes(x=tags, y=price, fill=tags))+geom_violin(scale="width", color="#00112200")+geom_boxplot(width=0.1, fill="white", outlier.size = 0.1)+geom_jitter(color="blue", alpha=0.2, size=0.5, shape=19)+theme_classic(base_size = 14)+#coord_flip()+theme(axis.text.x=element_text(angle=30, hjust=1),legend.position = "none",)+labs(x="carat", y="price")+#ylim(0.5, 0.85)+scale_fill_manual(values= c(scales::hue_pal()(12)) )

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

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

相关文章

物资管理新篇章:Java+SpringBoot实战

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

微信小程序本地开发

微信小程序本地开发时不需要在小程序后台配置服务器域名直接在小程序项目中填写后端在本机的IP地址和端口号 如图&#xff08;第一步&#xff09; 填写地址后发现报错&#xff0c;url不是合法域名&#xff0c;则在详情设置不校验合法域名 如图&#xff08;第二歩&#xff09;…

什么时候用ref和reactive

在Vue 3中&#xff0c;ref和reactive都是用于创建响应式数据的工具&#xff0c;但它们的使用场景有所不同。 使用ref的情况&#xff1a; 基本数据类型&#xff1a;当你需要响应式地处理基本数据类型&#xff08;如数字、字符串、布尔值&#xff09;时&#xff0c;应该使用ref…

算法训练营day35, 复习二叉树3

package main type TreeNode struct { Val int Left *TreeNode Right *TreeNode } // 2476. 二叉搜索树最近节点查询 //思路先用中序遍历 左中右获取有序数组&#xff0c;在用二分法寻找最大&#xff0c;最小值 func closestNodes(root *TreeNode, queries []int) [][]i…

Flink代码单词统计 ---批处理

flatMap&#xff1a;一对多转换操作&#xff0c;输入句子&#xff0c;输出分词后的每个词groupBy&#xff1a;按Key分组&#xff0c;0代表选择第1列作为Keysum&#xff1a;求和&#xff0c;1代表按照第2列进行累加print&#xff1a;打印最终结果 1.WordCount代码编写 需求&am…

统一管理项目的线程池

一、问题描述 频繁的创建、销毁线程和线程池,会给系统带来额外的开销,也有可能导致系统内线程数上限不可控。例如以下代码,每次发送邮件都会创建一个新的线程池,并且业务结束之后线程池也未随之销毁。 public static boolean sendMail(MailInfo mailInfo, MailServerInfo…

如何从零实现一个词云效果

词云是一种文本数据的可视化形式&#xff0c;它富有表现力&#xff0c;通过大小不一&#xff0c;五颜六色&#xff0c;随机紧挨在一起的文本形式&#xff0c;可以在众多文本中直观地突出出现频率较高的关键词&#xff0c;给予视觉上的突出&#xff0c;从而过滤掉大量的文本信息…

Segment Routing IPv6介绍

定义 SRv6&#xff08;Segment Routing IPv6&#xff0c;基于IPv6转发平面的段路由&#xff09;是基于源路由理念而设计的在网络上转发IPv6数据包的一种协议。SRv6通过在IPv6报文中插入一个路由扩展头SRH&#xff08;Segment Routing Header&#xff09;&#xff0c;在SRH中压…

matlab 线性四分之一车体模型

1、内容简介 略 57-可以交流、咨询、答疑 路面采用公式积分来获得&#xff0c;计算了车体位移、非悬架位移、动载荷等参数 2、内容说明 略 3、仿真分析 略 线性四分之一车体模型_哔哩哔哩_bilibili 4、参考论文 略

Mysql查询或导出结果添加序号字段方法

在MySQL中查询数据或者导出Excel时&#xff0c;通常都需要给结果集中的每一行来添加一个序号&#xff0c;方便给查询出或者导出的数据进行排序并且方便查看和处理数据&#xff0c;常见的方法是通过定义用户变量&#xff0c;在MySQL中直接给查询结果集添加序号。 通过定义用户变…

十一、Qt自定义Widget组件、静态库与动态库

一、自定义Widget组件 1、自定义Widget组件 使用步骤采用提升法&#xff08;promotion&#xff09;重新定义paintEvent事件 2、实现程序 &#xff08;1&#xff09;创建项目&#xff0c;基于QWidget &#xff08;2&#xff09;添加类&#xff0c;为Widget组件提升类 #inclu…

思科认证 | Cisco认证有哪些级别?国内怎么考CCIE?

Cisco作为全球领先的网络解决方案供应商&#xff0c;其认证体系广受行业认可。 下面将详细介绍Cisco认证的各级别&#xff0c;并指导国内考生如何顺利通过CCIE认证考试。 01 Cisco认证有哪些级别&#xff1f; Cisco认证体系共分为三个级别&#xff1a;CCNA、CCNP和CCIE。 CCN…

探索C语言位段的秘密

位段 1. 什么是位段2. 位段的内存分配3. 位段的跨平台问题4. 位段的应用4. 使用位段的注意事项 1. 什么是位段 我们使用结构体实现位段&#xff0c;位段的声明和结构体是类似的&#xff0c;有两个不同&#xff1a; 位段的成员必须是int&#xff0c;unsigned int&#xff0c;或…

【随笔记】Tina 移植 Mosquitto v2.0.18 版本

移植过程 从官方源码库里面找到最新的版本 v2.0.18 并下载下来计算 md5 值 https://mosquitto.org/files/source/mosquitto-2.0.18.tar.gz 修改顶层 Makefie&#xff1a;package\network\mosquitto\Makefile PKG_NAME:mosquitto -PKG_VERSION:1.4.8 PKG_VERSION:2.0.18PKG_RE…

python学习笔记 - 标准库函数

概述 为了方便程序员快速编写Python脚本程序&#xff0c;Python提供了很多好用的功能模块&#xff0c;它们内置于Python系统&#xff0c;也称为内置函数(Built-in Functions&#xff0c;BlF)&#xff0c;Python 内置函数是 Python 解释器提供的一组函数&#xff0c;无需额外导…

人工智能在环境保护中的作用与价值

人工智能在环境保护中的作用与价值 人工智能技术在环境保护领域发挥着越来越重要的作用&#xff0c;其应用不仅可以提高环境监测和管理的效率&#xff0c;还能够帮助解决一些环境问题。以下是人工智能在环境保护中的作用与价值的几个方面&#xff1a; 1. 环境监测 人工智能技…

前端架构: 脚手架之使用Ora在终端中实现输出Loading

ora ora 它主要做的一件事情啊&#xff0c;就是去在命令行当中去输出loading的状态loading在web中容易实现&#xff0c;但是在终端中实现起来是非常复杂的安装 $ npm i -S ora可以看到其源码与chalk不同的是, 有很多第三方依赖库 1 &#xff09;基础用法 import ora from or…

[C++] 如何对列表(vector),字典(map)等进行排序

对列表(vector)进行排序 C中可以使用std::sort()函数对vector进行排序。 #include <iostream> #include <vector> #include <algorithm>int main() {std::vector<int> nums {4, 2, 8, 6, 5, 3, 1, 7};// 对vector进行升序排序std::sort(nums.begin(…

前端常见面试题之vue3

文章目录 1. vue3比vue2有哪些优势2. 描述vue3的生命周期3. 如何看待vue3中的Composition API 和 Options API4. 如何理解ref、 toRef、和toRefs?5. vue3升级了哪些功能6. Composition API如何实现代码逻辑的复用&#xff08;hook)7. Vue3如何实现响应式的8.Vue3使用Proxy对象…

计算机网络实验八 利用 Java /C++开发网络聊天应用程序

一、实验目的和要求 1)基本掌握利用 Java 开发环境调试应用程序的方法。 2)理解基于套接字开发网络应用程序的过程,深入理解客户/服务器方式工作原理。 3)掌握基于Java和C++开发网络通信程序的方法。 二、实验环境 1)运行 Windows 2008 Server/XP/7 操作系统的 PC 2 台…