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

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

(1) 模拟数据

set.seed(202402)
dat=diamonds[sample(nrow(diamonds), 1000),]

> head(dat)
# A tibble: 6 × 10
  carat 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 × 11
  carat 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)) )

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

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

相关文章

数据可视化引领智慧仓储新时代

随着科技的飞速发展&#xff0c;数据可视化已然成为智慧仓储领域的璀璨明珠&#xff0c;其强大的功能和多面的作用让智慧仓储焕发出勃勃生机。让我们一同探索&#xff0c;数据可视化究竟在智慧仓储中起到了怎样的作用。下面我就以可视化从业者的角度来简单谈谈这个话题。 在这…

Linux——进程概念

目录 冯诺依曼体系结构 操作系统 管理 系统调用和库函数 进程的概念 进程控制块——PCB 查看进程 通过系统调用获取进程标示符 通过系统调用创建进程 进程状态 运行状态-R ​编辑 浅度睡眠状态-S 深度睡眠状态-D 暂停状态-T 死亡状态-X 僵尸状态-Z 僵尸进程…

详解顺序结构滑动窗口处理算法

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

WPF 附加属性+控件模板,完成自定义控件。建议观看HandyControl源码

文章目录 相关连接前言需要实现的效果附加属性添加附加属性&#xff0c;以Test修改FontSize为例依赖属性使用触发器使用直接操控 结论 控件模板&#xff0c;在HandyControl的基础上面进行修改参考HandyControl的源码控件模板原型控件模板 控件模板触发器完整样式简单使用 结论 …

光学3D表面轮廓仪微纳米三维形貌一键测量

光学3D表面轮廓仪(白光干涉仪)利用白光干涉原理&#xff0c;以0.1nm分辨率精准捕捉物体的表面细节&#xff0c;实现三维显微成像测量&#xff0c;被广泛应用于材料学领域的研究和应用。 了解工作原理与技术 材料学领域中的光学3D表面轮廓仪&#xff0c;也被称为白光干涉仪&am…

低价对品牌渠道的危害

品牌价值的体现主要在价格&#xff0c;比如要与竞品体现差异&#xff0c;除了产品功能上有做出差异&#xff0c;价格上也需要设置不同的阶梯&#xff0c;但如果经销商不遵守这个体系&#xff0c;或者非授权店铺随意低价&#xff0c;对于品牌来说都是非常不好的事情&#xff0c;…

Django后台管理(二)

一、自定义注册管理类介绍 官网:Django 管理站点 | Django 文档 | Django 注册模型除了使用 Django 默认的管理类admin,也可以自定义,比如: class StudentAdmin(admin.ModelAdmin):pass admin.site.register(Student, StudentAdmin)ModelAdmin 类是管理界面中模型的表示。…

微信小程序 wxs内联与外联的写法

内联写法 <!-- 内联wxs --> <view>大写字母{{m1.toUpper("xmly")}}</view> <wxs module"m1">module.exports.toUpperfunction(str){return str.toUpperCase()} </wxs> 外联写法 新建一个wxs文件 写一个函数&#xff0c;将…

架构(十五)Java字节码增强

一、引言 一般如果需要做增强类的架构工具会使用SpringBoot提供的切面&#xff0c;但是这逃不开两个问题&#xff1a;1、使用方需要加注解代码&#xff1b;2、版本更新导致的发布。 所以java还提供了字节码层面的增强方案&#xff0c;对使用的系统是无感的。 二、字节码增强选…

BLEU: a Method for Automatic Evaluation of Machine Translation

文章目录 BLEU: a Method for Automatic Evaluation of Machine Translation背景和意义技术原理考虑 n n n - gram中 n 1 n1 n1 的情况考虑 n n n - gram中 n > 1 n\gt 1 n>1 的情况考虑在文本中的评估初步实验评估和结论统一不同 n n n 值下的评估数值考虑句子长度…

Ubuntu上Jenkins自动化部署Gitee上SpringBoot项目

文章目录 安装安装JDK安装Maven安装GitNodeJS安装&#xff08;可选&#xff09;安装Jenkins 配置Jenkins为Jenkins更换插件源设置jenkins时区安装插件全局工具配置添加Gitee凭证Gitee项目配置 部署后端1.新建任务2.配置源码管理3.构建触发器4.到Gitee中添加WebHook5.构建环境6.…

C++——基础语法(3):内联函数、auto关键字、基于范围的for循环、空指针nullptr

6. 内联函数 在函数前加入inline修饰即可将函数变为内联函数。所谓内联函数&#xff0c;就是在编译时C编译器会将函数体在调用内联函数的地方展开&#xff0c;从而省去了调用函数的栈帧开销&#xff0c;提高程序运行效率。 inline int Add(int a, int b) {return a b; } int …

十一、计算机视觉-膨胀操作

文章目录 前言一、什么是膨胀二、膨胀操作的实现1.引入库 三、膨胀的原理 前言 上节我们学习了腐蚀操作&#xff0c;本节我们讲一下膨胀操作&#xff0c;膨胀和腐蚀实际上是相反的操作。上节我们把云峰这2个字周围没用的像素去掉了&#xff0c;但是云峰这2个字也变细了&#x…

Protocol Buffer-nanopb介绍

文章目录 一、需求二、环境三、相关概念3.1 protocol buffer介绍3.2 nanopb&#xff08;支持C语言&#xff09;3.3 proto文件 四、proto基本语法4.1 proto文件的定义4.2 字段规则4.3 字段类型4.4 字段编号4.5 proto语法4.6 进阶语法4.6.1 message嵌套4.6.2 enum关键字4.6.3 one…

【Flink精讲】Flink状态及Checkpoint调优

RocksDB大状态调优 RocksDB 是基于 LSM Tree 实现的&#xff08;类似 HBase&#xff09; &#xff0c;写数据都是先缓存到内存中&#xff0c; 所以 RocksDB 的写请求效率比较高。 RocksDB 使用内存结合磁盘的方式来存储数据&#xff0c;每 次获取数据时&#xff0c;先从内存中 …

什么是高可用架构

一、什么是高可用 在运维中&#xff0c;经常听到高可用&#xff0c;那么什么是高可用架构呢&#xff1f;通俗点讲&#xff0c;高可用就是在服务故障&#xff0c;节点宕机的情况下&#xff0c;业务能够保证不中断&#xff0c;服务正常运行。 举个例子&#xff0c;支付宝&#…

GS069——直流有刷电机调速电路 通过外接电阻网络,改变与之相接的 VMOS 管的输出,达到控制电动工具 转速的作用。 功耗小,电源电压范围宽。

GS069电动工具直流调速电路是CMOS专用集成电路&#xff0c;具有电源电压范 围宽、功耗小、抗干扰能力强等特点。通过外接电阻网络&#xff0c;改变与之相接 的VMOS 管的输出&#xff0c;达到控制电动工具转速的作用。该电路输出幅值宽&#xff0c; 频率变化小&#xff0c;占空比…

vue ts html 中如何遍历 Enum 类型构建页面结构

vue ts html 中如何遍历 Enum 类型构建页面结构 一、需求 定义了一个 Enum 用来标记菜单类型&#xff1a; enum EnumMenuType {目录 1,菜单,按钮,外链 }你得 Enum 知道它的序号是随第一个定义的值自动增长的 现在想在 ElementUI 界面的 radio-group 中遍历它&#xff0c;…

聚集高速托盘类四向穿梭车ASRV|一车跑全仓可获得10000个货位的HEGERLS智能搬运机器人

随着国内外制造业加速转型升级&#xff0c;越来越多的企业需要进行物流智能化升级&#xff0c;但是往往受到仓库面积、高度、形状等现实条件的限制&#xff0c;以及市场不确定性因素的影响。因此&#xff0c;相对于投资传统的自动化立体库&#xff0c;企业更倾向于选择智能化、…