【R語言編程繪圖-箱線圖】

基本箱線圖繪制

使用ggplot2繪制箱線圖的核心函數是geom_boxplot()。以下是一個基礎示例,展示如何用iris數據集繪制不同物種(Species)的萼片長度(Sepal.Length)分布:

library(ggplot2)
ggplot(iris, aes(x = Species, y = Sepal.Length)) + geom_boxplot()

顏色與填充控制

通過fillcolor參數可分別控制箱線圖內部填充色和邊框顏色:

ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) + geom_boxplot(color = "black", alpha = 0.7)
  • alpha參數調整透明度(0-1)
  • 顏色支持Hex格式(如#FF5733)或R顏色名稱

異常值樣式調整

箱線圖的異常值(outliers)可通過以下參數定制:

geom_boxplot(outlier.color = "red",       # 異常點顏色outlier.shape = 19,          # 點形狀編號outlier.size = 3,            # 點大小outlier.alpha = 0.6          # 透明度
)

寬度與位置調整

width參數控制箱體寬度,position調整分組位置:

ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) + geom_boxplot(width = 0.5, position = position_dodge(0.8))

分組箱線圖

當需要按兩個分類變量分組時,使用交互變量或分面:

# 方法1:dodge分組
ggplot(mpg, aes(x = class, y = hwy, fill = factor(cyl))) + geom_boxplot(position = position_dodge(preserve = "single"))# 方法2:分面
ggplot(mpg, aes(x = class, y = hwy)) + geom_boxplot() + facet_wrap(~cyl)

統計信息顯示

可通過stat_summary()疊加顯示均值等統計量:

ggplot(iris, aes(x = Species, y = Sepal.Length)) + geom_boxplot() +stat_summary(fun = mean, geom = "point", shape = 18, size = 3, color = "red")

水平箱線圖

交換x/y映射即可創建水平箱線圖:

ggplot(iris, aes(y = Species, x = Sepal.Length)) + geom_boxplot()

在這里插入圖片描述

完整參數列表

geom_boxplot()支持的完整美學參數(aesthetics)包括:

  • x:分類變量(必需)
  • y:連續變量(必需)
  • lower/upper:自定義箱體范圍
  • middle:自定義中位數線
  • ymin/ymax:自定義須線范圍
  • group:強制分組變量
  • weight:加權箱線圖

主題定制

通過theme()函數可精細調整標題、坐標軸等元素:

ggplot(iris, aes(x = Species, y = Sepal.Length)) + geom_boxplot() + labs(title = "鳶尾花萼片長度分布") + theme_minimal() +theme(axis.text.x = element_text(angle = 45, hjust = 1))
# 加載必要的庫
library(ggplot2)# 創建示例數據
df <- data.frame(group = rep(c("A", "B", "C"), each = 100),value = c(rnorm(150, mean = 0), rnorm(60, mean = 1), rnorm(400, mean = 2))
)# 繪制箱線圖
p <- ggplot(df, aes(x = group, y = value)) +geom_boxplot(width = 0.6, fill = "white", color = "black") +  # 使用白色填充,黑色邊框labs(title = "Boxplot of Values by Group",  # 標題x = "Group",  # X軸標簽y = "Value") +  # Y軸標簽theme_minimal() +  # 使用簡潔主題theme(plot.title = element_text(size = 16, face = "bold", hjust = 0.5),  # 標題樣式axis.title = element_text(size = 14, face = "bold"),  # 軸標題樣式axis.text = element_text(size = 12),  # 軸刻度標簽樣式legend.position = "none",axis.line = element_line(color = "black"))  
# 顯示圖像
print(p)# 保存為高分辨率圖像
ggsave("boxplot.png", plot = p, width = 8, height = 6, dpi = 300)

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/82600.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82600.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/82600.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習能取代機器學習嗎?

在人工智能領域&#xff0c;“機器學習”和“深度學習”這兩個詞經常被混為一談。很多新手甚至以為只要跟 AI 有關的任務&#xff0c;都該用深度學習。但其實&#xff0c;它們并不是誰強誰弱的關系&#xff0c;而是適合不同場景的工具。 這篇文章就來幫你理清楚&#xff1a; 機…

UPS的工作原理和UPS系統中旁路的作用

UPS&#xff08;不間斷電源&#xff09;根據工作原理和適用場景的不同&#xff0c;主要分為以下三種類型&#xff0c;每種類型的特點和適用場景如下&#xff1a; 1. 后備式UPS&#xff08;Offline/Standby UPS&#xff09; 工作原理&#xff1a; 正常供電時&#xff0c;負載直接…

一級菜單401問題

正常代碼生成的前后臺文件&#xff0c;菜單類型是一級標題&#xff0c; 菜單路徑和前端組件的地址都正常寫的:/projects/xxx/xxx/xxx/XxxList 其他生成的新列表都能點進去&#xff0c;只有這個點進去就是顯示空白的像首頁那個頁面一樣&#xff0c; 問題就出現在我第一次建這…

ROS2 robot控制學習(一)

controller_position.yaml使用說明 ROS 2 的 controller_manager 用途典型工作流程示例關鍵服務與話題擴展功能JointTrajectoryController 參數詳解基本參數軌跡參數插值參數前饋控制代碼示例動態參數調試參數ForwardCommandController 概述參數解釋`joints``interface``allow_…

LightGBM的python實現及參數優化

文章目錄 1. LightGBM模型參數介紹2. 核心優勢3. python實現LightGBM3.1 基礎實現3.1.1 Scikit-learn接口示例3.1.2 Python API示例 3.2 模型調優3.2.1 GridSearchCV簡介3.2.2 LightGBM超參調優3.2.3 GridSearchCV尋優結果 在之前的文章 Boosting算法【AdaBoost、GBDT 、XGBoo…

Map集合(雙列集合)

Map結合也稱為“鍵值對集合”&#xff0c;格式&#xff1a;{key1value1&#xff0c;key2value2....} Map集合的特點&#xff1a; 鍵唯一&#xff1a;在Map集合中&#xff0c;鍵&#xff08;key&#xff09;是唯一的&#xff0c;不能有重復的鍵。如果嘗試插入一個已經存在的鍵…

springBoot項目測試時瀏覽器返回406問題解決方案

1. 如果基于最新版本的SpringBoot官方骨架創建的SpringBoot項目&#xff0c;在勾選了lombok的依賴之后&#xff0c;會在pom.xml中引入如下兩個插件&#xff1a; 2. 由于第一個插件 maven-compiler-plugin 的引入導致了這個問題&#xff0c;解決這個問題的方案呢&#xff0c;就是…

21.享元模式:思考與解讀

原文地址:享元模式&#xff1a;思考與解讀 更多內容請關注&#xff1a;深入思考與解讀設計模式 引言 在軟件開發中&#xff0c;特別是當你處理大量相似對象時&#xff0c;是否會遇到一個問題&#xff1a;大量的對象會占用大量的內存&#xff0c;而這些對象有許多相同的狀態&…

java方法重寫學習筆記

方法重寫介紹 子類和父類有兩個返回值&#xff0c;參數&#xff0c;名稱都一樣的方法&#xff0c; 子類的方法會覆蓋父類的方法。 調用 public class Overide01 {public static void main(String[] args) {Dog dog new Dog();dog.cry();} }Animal類 public class Animal {…

什么是ESLint?它有什么作用?

ESLint 是一個用于 靜態代碼分析 的工具,專門檢測 JavaScript/TypeScript 代碼中的潛在問題和風格違規。它通過預定義的規則集幫助開發者保持代碼的一致性和質量,是前端工程化的核心工具之一。 一、ESLint 的核心作用 1. 錯誤檢查(Error Detection) 識別語法錯誤、未定義變…

Docker的網絡介紹

網絡簡單介紹 在介紹 Docker 的網絡模式之前&#xff0c;先簡單說下我們在使用 Vmware 虛擬機中的網絡模式&#xff0c;形成對比&#xff0c;更好理解。 1、Vmware 中的網絡模式 1.1、VMnet0&#xff08;橋接模式&#xff09; 虛擬機通過宿主機的物理網卡直接連接到外部網絡…

Netty學習專欄(六):深度解析Netty核心參數——從參數配置到生產級優化

文章目錄 前言一、核心參數全景解析1.1 基礎網絡層參數1.2 內存管理參數1.3 水位線控制1.4 高級參數與系統級優化 二、生產級優化策略2.1 高并發場景優化2.2 低延遲場景優化 總結 前言 在分布式系統和高并發場景中&#xff0c;Netty作為高性能網絡通信框架的核心地位無可替代。…

計算機網絡學習(六)——UDP

一、UDP UDP&#xff08;User Datagram Protocol&#xff0c;用戶數據報協議&#xff09;是傳輸層的一種協議&#xff0c;和 TCP 并列。與 TCP 不同&#xff0c;UDP 是無連接、不可靠、面向報文的協議&#xff0c;它的設計目標是追求更快的數據傳輸速度和更小的開銷。 UDP 為…

vue3文本超出三行顯示省略號,點擊查看更多顯示全部文本

只有一行時&#xff08;不顯示展開按鈕&#xff09;&#xff1a; 話不多說&#xff0c;上碼 ~template <el-col :span"24"><el-form-item :label"$t(warningOrgNames_)"><div class"content-box" ref"contanierRef"…

手寫Tomcat(一)

一、Tomcat簡介 Tomcat 服務器是一個免費的開放源代碼的Web應用服務器&#xff0c;屬于輕量級應用服務器&#xff0c;在中小型系統和并發訪問用戶不是很多的場合下被普遍使用&#xff0c;是開發和調試JSP 程序的首選。 1.1 Tomcat基本架構 Servlet接口文件中定義的方法有以下…

第三節_PySide6中Qt Designer 的基礎使用_上篇

文章目錄 前言一、Qt Designer簡介1.什么是 Qt Designer&#xff1f;2.核心功能3.核心優勢 二、Qt Designer界面介紹1.主窗口的創建2.窗口五大區域的簡單介紹 三、界面布局 Layout1.窗口布局方式介紹2.UI布局技巧概述3.UI布局實戰應用 總結 前言 第二節_PySide6項目創建流程介…

行列式的線性性質(僅限于單一行的加法拆分)

當然可以&#xff0c;以下是經過排版優化后的內容&#xff0c;保持了原始內容不變&#xff0c;僅調整了格式以提升可讀性&#xff1a; 行列式的線性性質&#xff08;加法拆分&#xff09; 這個性質說的是&#xff1a;如果行列式的某一行&#xff08;或某一列&#xff09;的所有…

Git使用說明

配置Git 確定已經安裝了Git, 通過以下的命令配置全局的郵箱和用戶名 git config --global user.email "your@xx.com" git config --global user.name "yourname" 初始化本地倉庫 首先,打開終端并切換到存放你代碼的項目目錄。接著執行以下命令,將該…

【后端高階面經:緩存篇】36、如何保證Redis分布式鎖的高可用和高性能?

一、分布式鎖核心挑戰:從單機到分布式的跨越 (一)分布式鎖的本質需求 互斥性:同一時刻僅一個客戶端持有鎖容錯性:節點故障時鎖仍有效(避免單點)原子性:加鎖/釋放鎖操作原子完成可重入性:支持同一客戶端多次獲取同一把鎖(二)Redis天然優勢 單線程模型保證操作原子性…

【后端高階面經:MongoDB篇】40、怎么優化MongoDB的查詢性能?

一、索引優化&#xff1a;構建高效查詢的基石 &#xff08;一&#xff09;索引類型與適用場景 1. 五大核心索引類型 索引類型適用場景示例代碼性能影響單字段索引單條件查詢&#xff08;如用戶ID、狀態字段&#xff09;db.users.createIndex({ user_id: 1 })低復合索引多條件…