网站首页 > 技术文章 正文
背景介绍
今天来给大家介绍一种新的图形——山脊图(ridgeline plot),山脊图主要可以用来进行几个组的数值变量分布的研究,通俗点讲,就是用来进行多个组之间数据的比较。
如下所示,我们就进行了不同品质钻石价格的变化比较:
软件介绍
[软件名称]:R(4.1.2)
[软件名称]:RStudio(1.4.1106)
绘图教程
1.我们使用R语言自带的数据diamonds进行绘图,首先看一下该数据集的格式
2.首先我们加载两个包ggridges和ggplot2,ggridges是用来协助ggplot进行图形绘制的
library(ggridges)
library(ggplot2)3.老规矩,我们先看一下该函数的介绍,方便参数的更改
4.进行图形的绘制,基本的框架就出来了
ggplot(diamonds, aes(x = price, y = cut, fill = cut)) +
geom_density_ridges() 5.上述是一种图形格式,如果我们想更改另一种样子呢?只需要更改一下stat = "binline"参数即可
ggplot(diamonds, aes(x = price, y = cut, fill = cut)) +
geom_density_ridges(stat = "binline",bins=20) 6.如何将Y轴进行翻转呢?直接提取y轴的水平:levels(diamonds$cut),然后使用rev()函数进行逆转即可
diamonds$cut <- factor(diamonds$cut,levels = rev(levels(diamonds$cut)))
ggplot(diamonds, aes(x = price, y = cut, fill = cut)) +
geom_density_ridges(stat = "binline",bins=20) 7.最后就是对图形风格的调节,参数如下,可以按照个人喜欢的风格搭配
library(RColorBrewer) #填充颜色
windowsFonts(A=windowsFont("Times New Roman")) #字体
ggplot(diamonds, aes(x = price, y = cut, fill =cut))+
geom_density_ridges()+
theme(legend.position = "none", #删除Legend
text = element_text(family = "A",size =18), #调节字体格式
panel.background = element_rect(fill =c("#FFE4C4")),
panel.border = element_rect(fill = NA,colour = "black",size = 1.5)) #边框调节8.快来试试吧
猜你喜欢
- 2025-09-04 JAVA入门教程-第2章 基本编程概念
- 2025-09-04 C++基础语法梳理:算法丨十大排序算法(二)
- 2025-09-04 C语言段错误(Segmentation Fault)全面解析:原理、调试与预防
- 2025-09-04 编译器动手实践之:实现C语言函数定义的语法解析
- 2025-09-04 SOLIDWORKS语言切换:如何从英文切换到中文
- 2025-09-04 我如何用C语言构建简单Shell(三)_c语言编写shell
- 2025-09-04 程序员上手 Rust 2 年后感悟:它的确强大,但想要取代 C 还远着呢
- 2025-09-04 我如何用C语言构建简单Shell (一)
- 2025-09-04 rust 每次发送请求时调用Arc::new(peer) 会影响性能吗?
- 2025-09-04 大语言模型学习Python中用__new__()创建实例
- 最近发表
-
- 聊一下 gRPC 的 C++ 异步编程_grpc 异步流模式
- [原创首发]安全日志管理中心实战(3)——开源NIDS之suricata部署
- 超详细手把手搭建在ubuntu系统的FFmpeg环境
- Nginx运维之路(Docker多段构建新版本并增加第三方模
- 92.1K小星星,一款开源免费的远程桌面,让你告别付费远程控制!
- Go 人脸识别教程_piwigo人脸识别
- 安卓手机安装Termux——搭建移动服务器
- ubuntu 安装开发环境(c/c++ 15)_ubuntu安装c++编译器
- Rust开发环境搭建指南:从安装到镜像配置的零坑实践
- Windows系统安装VirtualBox构造本地Linux开发环境
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (73)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)
