R语言——直方图

news2025/4/17 4:53:09

参考资料:学习R

        如果我们要研究一个连续变量的分布,直方图是最佳的选择。

1、base绘图

        在base中可以使用hist函数绘制直方图,与plot函数一样,它没有data参数,须把数据框置于with中。

data(obama_vs_mccain,package="learningr")
with(
  obama_vs_mccain,
  hist(Obama)
)

        直方图的区间间距的数值默认是由斯特奇斯(sturges)算法进行计算。我们可以实验着使用各种不同的子区间(bin)宽度,这样对分布的理解将更加完整:这个非常灵活,可以通过多种方式来实现:给hist函数传递一个数字来指定区间的数目,或一个区间边缘的向量,或用于计算区间数目的算法名称(除了默认的"sturges",还支持"scott"和"fd"),或一个能计算两个选项之一的函数

        hist函数的main参数用于创建图中的主标题。

with(
  obama_vs_mccain,
  hist(Obama,4,main="An exact number of bins")
)

with(
  obama_vs_mccain,
  hist(
    Obama,
    seq.int(0,100,5),
    main="A vector of bin edges"
  )
)

with(
  obama_vs_mccain,
  hist(Obama,"FD",main="The name of method")
)

with(
  obama_vs_mccain,
  hist(
    Obama,
    nclass.scott,
    main="A function for the number of bins"
  )
)

binner<-function(x){
  seq(
    min(x,na.rm=TRUE),
    max(x,na.rm=TRUE),
    length.out=50)
}
with(
  obama_vs_mccain,
  hist(
    Obama,
    binner,
    main="A function for the bin edges"
  )
)

        freq参数控制直方图是否显示计数或显示每个区间的概率密度。当且仅当区间是均匀分布时,它默认为TRUE

with(
  obama_vs_mccain,
  hist(
    Obama,
    freq=FALSE
  )
)

2、lattice绘图

        lattice中的直方图与base类似,不过它还使用了一个data参数,这个参数使它能更易于分割成多个面板,且能把绘图保存为变量。breaks参数与其在hist中的使用方式相同。

library(lattice)
histogram(
  ~Obama,
  obama_vs_mccain  
)

library(lattice)
histogram(
  ~Obama,
  obama_vs_mccain,
  breaks=10
)

        lattice中的直方图能通过type参数为"count"、"density"或"percent"指定y轴的显示类型:计数、概率密度和百分比,默认是百分比。

histogram(
  ~Obama,
  obama_vs_mccain,
  type="density"
)

3、ggplot2

        ggplot2直方图是通过添加一个直方图的geom来创建的。其区间规格很简单:只需要传递一个数字宽度到geom_histogram即可。其原因是为了让我们手动尝试不同的区间数,而不是仅仅满足于默认值。

library(ggplot2)
ggplot(
  obama_vs_mccain,
  aes(Obama)
)+
  geom_histogram(binwidth=5)

        我们可以通过传递特殊的名字..count..或..density..到y-aesthetic中来选择计数或密度。

ggplot(
  obama_vs_mccain,
  aes(Obama)
)+
  geom_histogram(binwidth=5,aes(y=..density..))
输入上面的代码会提示如下:
The dot-dot notation (`..density..`) wasdeprecated in ggplot2 3.4.0.
 Please use `after_stat(density)` instead.

        因此,建议改成新的参数:

ggplot(
  obama_vs_mccain,
  aes(Obama)
)+
  geom_histogram(binwidth=5,aes(y=after_stat(density)))

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

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

相关文章

第4节:Python编程基础 - Python语法快速回顾

1. Python简介与环境配置 Python是一种高级、解释型、通用的编程语言&#xff0c;由Guido van Rossum于1991年首次发布。 它以简洁明了的语法和强大的功能而闻名&#xff0c;广泛应用于Web开发、数据分析、人工智能、科学计算等领域。 1.1 Python的特点 简单易学&#xff1a;…

十四、C++速通秘籍—函数式编程

目录 上一章节&#xff1a; 一、引言 一、函数式编程基础 三、Lambda 表达式 作用&#xff1a; Lambda 表达式捕获值的方式&#xff1a; 注意&#xff1a; 四、函数对象 函数对象与普通函数对比&#xff1a; 五、函数适配器 1、适配普通函数 2、适配 Lambda 表达式 …

博物馆小程序怎么做?从0到1打造数字化文化窗口

博物馆小程序怎么做&#xff1f;从0到1打造数字化文化窗口 一、行业痛点&#xff1a;传统博物馆的数字化困局 在数字化浪潮下&#xff0c;传统博物馆普遍面临三大挑战&#xff1a; ​​客流受限​​&#xff1a;线下接待能力有限&#xff0c;难以触达更广泛人群 ​​互动单一…

1.5-APP的架构\微信小程序的架构

1.5-APP的架构\微信小程序的架构 APP的三种开发架构&#xff1a; 原生态APP类型 APP-开发架构-原生态-IDEA 演示&#xff1a;remusic项目源码 NP管理器&#xff1a; http://normalplayer.top/ HttpCanary&#xff1a;https://github.com/mingww64/HttpCanary-SSL-Magisk 安全影…

【服务器端表单字符验证】

文章目录 一、实验目的二、核心代码实现三、调试关键问题四、总结 一、实验目的 掌握JSP表单验证在服务器端的实现技术&#xff0c;实现对用户输入字符的非空及长度为5的验证&#xff0c;返回对应提示信息并优化用户交互。 二、核心代码实现 前端表单 <form action"…

【玩转全栈】—— Django 连接 vue3 保姆级教程,前后端分离式项目2025年4月最新!!!

本文基于之前的一个旅游网站&#xff0c;实现 Django 连接 vue3&#xff0c;使 vue3 能携带 CSRF Token 发送 axios 请求给后端&#xff0c;后端再响应数据给前端。想要源码直接滑倒底部。 目录 实现效果 解决跨域 获取 csrf-token 什么是 csrf-token &#xff1f; CSRF攻击的…

数据库实验:分组查询与聚集函数的使用

目录 引言一、GROUP BY核心规则与常见错误二、高级分组选项&#xff1a;ROLLUP、CUBE与GROUPING SETS三、窗口函数&#xff1a;在原始行中显示分组聚合结果四、UNION ALL合并结果集&#xff1a;解决冗余查询问题五、实验体会 结语 &#xff08;附上实验中表格的信息&#xff09…

Open-TeleVision源码解析——宇树摇操方案的重要参考:VR控制人形机器人采集数据

前言 本来针对Open-TeleVision的源码解析&#xff0c;是打算放在此文《从宇树摇操avp_teleoperate到unitree_IL_lerobot&#xff1a;如何基于宇树人形进行二次开发》中的&#xff0c;但考虑到为避免篇幅过长&#xff0c;故独立成此文 第一部分 Open-TeleVision的源码解析 如本…

推流265视频,网页如何支持显示265的webrtc

科技发展真快&#xff0c;以前在网页上&#xff08;一般指谷歌浏览器&#xff09;&#xff0c;要显示265的视频流&#xff0c;都是很鸡肋的办法&#xff0c;要么转码&#xff0c;要么用很慢的hls&#xff0c;体验非常不好&#xff0c;而今谷歌官方最新的浏览器已经支持265的web…

“破解”GPT-4o生图技术:万物皆可吉卜力的技术路线推测

&#x1f449;目录 1 GPT-4o 的神奇魔法 2 GPT-4o 可能的技术路线推测 3 结语 最近 GPT-4o 生图模型横空出世&#xff0c;效果和玩法上都有突破性的进展&#xff0c;笔者整理了一下目前相关的技术&#xff0c;抛砖引玉一下&#xff0c;希望有更多大神分享讨论。 图源小红书恶魔…

基于SpringBoot的电影订票系统(源码+数据库+万字文档+ppt)

504基于SpringBoot的电影订票系统&#xff0c;系统包含两种角色&#xff1a;管理员、用户主要功能如下。 【用户功能】 首页&#xff1a;浏览系统电影动态。 资讯信息&#xff1a;获取有关电影行业的新闻和资讯。 电影信息&#xff1a;查看电影的详细信息和排片情况。 公告信…

07-算法打卡-链表-移除链表-leetcode(203)-第七天

1 题目地址 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09;203. 移除链表元素 - 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a;[https://assets.leetc…

在线地图支持天地图和腾讯地图,仪表板和数据大屏支持发布功能,DataEase开源BI工具v2.10.7 LTS版本发布

2025年4月11日&#xff0c;人人可用的开源BI工具DataEase正式发布v2.10.7 LTS版本。 这一版本的功能变动包括&#xff1a;数据源方面&#xff0c;Oracle数据源支持获取和查询物化视图&#xff1b;图表方面&#xff0c;在线地图支持天地图、腾讯地图&#xff1b;新增子弹图&…

粉末冶金齿轮学习笔记分享

有一段小段时间没有更新了&#xff0c;不知道小伙们有没有忘记我。最近总听到粉末冶金齿轮这个概念&#xff0c;花点时间来学习一下&#xff0c;总结一篇笔记分享给大家。废话不多说&#xff0c;直接开始&#xff1a; “粉末冶金”是一种制造工艺&#xff0c;包括在高压下压实…

Retina:部署在神经硬件的SNN眼动追踪算法

论文链接&#xff1a;Retina : Low-Power Eye Tracking with Event Camera and Spiking Hardware 这是一篇发表在2024CVPRW上的文章&#xff0c;做了三个contribution&#xff1a; 将SNN放在Eye Tracking任务上。提出了Ini-30数据集部署到了Spike硬件上 还是挺有趣的。但是由于…

OCR API识别对比

OCR 识别DEMO OCR识别 demo 文档由来 最开始想使用百度开源的 paddlepaddle大模型 研究了几天&#xff0c;发现表格识别会跨行&#xff0c;手写识别的也不很准确。最终还是得使用现成提供的api。。 文档说明 三个体验下来 腾讯的识别度比较高&#xff0c;不论是手写还是识别表…

flutter 桌面应用之右键菜单

​在 Flutter 桌面应用开发中&#xff0c;context_menu 和 contextual_menu 是两款常用的右键菜单插件&#xff0c;各有特色。以下是对它们的对比分析&#xff1a;​ context_menu 集成方式&#xff1a;​通过 ContextMenuArea 组件包裹目标组件&#xff0c;定义菜单项。​掘金…

Cygwin编译安装Acise

本文记录Windows下使用Cygwin编译安装Acise的流程。 零、环境 操作系统Windows11Visual Studio CodeVisual Studio Code 1.92.0Cygwin 一、工具及依赖 1.1 Visual Studio Code 下载并安装Visual Studio Code, 同时安装以下插件&#xff0c; Task Explorer Output Colorizer …

pyqtgraph.opengl.items.GLSurfacePlotItem.GLSurfacePlotItem 报了一个错

1. 需求是这个样子的 有一个 pyqtgraph.opengl.GLViewWidget &#xff0c;在应用启动时存在QMainWindow中&#xff0c;即父对象是QMainWindow&#xff0c;当业务需要时&#xff0c;修改它的父对象变为一个QDialog&#xff0c;可以让它从QMainWindow中弹出显示在QDialog里&#…

【C++初学】课后作业汇总复习(六) 函数模板

1、函数模板 思考&#xff1a;如果重载的函数&#xff0c;其解决问题的逻辑是一致的、函数体语句相同&#xff0c;只是处理的数据类型不同&#xff0c;那么写多个相同的函数体&#xff0c;是重复劳动&#xff0c;而且还可能因为代码的冗余造成不一致性。 解决&#xff1a;使用…