ggplot2 的小提琴图与 x 轴上的数据集的顺序不同

2024-01-10

I created the violin plot using below code, But on the x-axis, Models name are not in order as in the data set (i.e. "Observed", "SVM", "Grid_SVM", "MARS", "Grid_Mars", "RF", "Grid_RF"). Where the edit is required in the code?

ggplot(df1, aes(x = Model, y = Pb), cex.lab = 18, cex.axis=18) +
  geom_violin(trim=FALSE, fill = "palegreen") +
  geom_boxplot(width = .12, fill = "orange", outlier.color = "orange", outlier.size = 2) + 
  labs(title = "Pb Adsorption distribution by Models over testing phase") + xlab("Models") + ylab("Pb Adsorption distribution")+ theme_classic() +
  theme(
  plot.title = element_text(size = 12, colour = "black", face = "bold"), #for Main Title
  axis.title.x = element_text(size = 12, colour = "black", face = "bold"), #for axix title
  axis.title.y = element_text(size = 12, colour = "black", face = "bold"),
  axis.text.x = element_text(face="bold", color="darkblue", size=12, angle=0), #for axis tick
  axis.text.y = element_text(face="bold", color="black", size=12, angle=0))

默认情况下,ggplot2 按字母顺序绘制字符向量。要对绘图放置指定的顺序,只需使用 dplyr 并将列创建为factor()并指定您想要的级别。然后 ggplot2 应该按照你想要的方式绘制它。

Edit #1一种方法是修改df1数据框与 ggplot2 命令字符串分开。你可以这样做

df1 <- df1 %>%
  mutate( Model=factor(Model,levels=c("Observed", "SVM", "Grid_SVM", "MARS", "Grid_Mars", "RF", "Grid_RF")) )

然后调用您上面发布的 ggplot2 命令字符串。

Edit #2(来自下面的评论)

如果您想通过管道传输所有内容并一次性完成所有操作,请尝试

df1 %>%
  mutate( Model=factor(Model,levels=c("Observed", "SVM", "Grid_SVM", "MARS", "Grid_Mars", "RF", "Grid_RF")) ) %>%
  ggplot( aes(x = Model, y = Pb), cex.lab = 18, cex.axis=18) +
  geom_violin(trim=FALSE, fill = "palegreen") +
  geom_boxplot(width = .12, fill = "orange", outlier.color = "orange", outlier.size = 2) + 
  labs(title = "Pb Adsorption distribution by Models over testing phase") + xlab("Models") + ylab("Pb Adsorption distribution")+ theme_classic() +
  theme(
  plot.title = element_text(size = 12, colour = "black", face = "bold"), #for Main Title
  axis.title.x = element_text(size = 12, colour = "black", face = "bold"), #for axix title
  axis.title.y = element_text(size = 12, colour = "black", face = "bold"),
  axis.text.x = element_text(face="bold", color="darkblue", size=12, angle=0), #for axis tick
  axis.text.y = element_text(face="bold", color="black", size=12, angle=0))

最初的建议是覆盖数据。然后在新的链中生成绘图。

df1 <- df1 %>%
  mutate( Model=factor(Model,levels=c("Observed", "SVM", "Grid_SVM", "MARS", "Grid_Mars", "RF", "Grid_RF")) )

ggplot( df1, aes(x = Model, y = Pb), cex.lab = 18, cex.axis=18) +
  geom_violin(trim=FALSE, fill = "palegreen") +
  geom_boxplot(width = .12, fill = "orange", outlier.color = "orange", outlier.size = 2) + 
  labs(title = "Pb Adsorption distribution by Models over testing phase") + xlab("Models") + ylab("Pb Adsorption distribution")+ theme_classic() +
  theme(
  plot.title = element_text(size = 12, colour = "black", face = "bold"), #for Main Title
  axis.title.x = element_text(size = 12, colour = "black", face = "bold"), #for axix title
  axis.title.y = element_text(size = 12, colour = "black", face = "bold"),
  axis.text.x = element_text(face="bold", color="darkblue", size=12, angle=0), #for axis tick
  axis.text.y = element_text(face="bold", color="black", size=12, angle=0))

以上任何一个都可以。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ggplot2 的小提琴图与 x 轴上的数据集的顺序不同 的相关文章

  • decompose() 的周期太少[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 错误看起来像这样 decompose
  • 如何提取与 R 中主题 ID 列表匹配的行?

    我有一个包含许多主题 ID 的数据框 每个主题都有重复观察 我还有一个单独的数据框 其中只有一个主题 ID 列表 我想从更大的数据框中匹配和提取 如何以允许我引用不同数据帧中的SubjectID列表的方式编写代码 不确定我是否完全理解这个问
  • 基于另一个数据集获取数据集的子集

    假设我有一个数据集 即 dat1 ID block plot SPID TotHeight 1 1 1 4 44 5 2 1 1 4 51 3 1 1 4 28 7 4 1 1 4 24 5 5 1 1 4 27 3 6 1 1 4 20
  • R 中具有稳健回归的异常值

    我正在使用lmrobR 中的函数使用robustbase用于稳健回归的库 我会把它用作 rob reg lt lmrob y 0 dat method MM control a1 当我想返回我使用的摘要时summary rob reg 稳健
  • 如何对同一列上的数据帧列表中的所有数据帧进行排序?

    我有一个数据框列表dataframes list 举个例子 我把dput dataframes list 在底部 我想对列列表中的所有数据框进行排序enrichment 我可以对一个数据框进行排序 first dataframe lt da
  • 如何用外部图像填充地图边界?

    我正在创建一张带有州边界的巴西地图 这可以直接使用ggplot2 and geom sf 然而 这一次 我不想用数据填充每个状态的颜色 而是想用外部图像 png 填充每个状态的边界 类似于this https online olivet e
  • R中的一元加/减是什么?

    来自 R 的详细信息部分Syntax http stat ethz ch R manual R patched library base html Syntax html帮助页面 定义了以下一元和二元运算符 他们被列出 在优先级组中 从最高
  • 在 R 中向散点图添加线条

    如何向图表添加线条 我做了以下 dat lt data frame xvar 1 20 rnorm 20 sd 10 yvar 1 20 rnorm 20 sd 10 zvar 1 20 rnorm 20 sd 10 plot dat 1
  • 纵向序列数据的三次样条方法?

    我有一个串行数据 格式如下 time milk Animal ID 30 25 6 1 31 27 2 1 32 24 4 1 33 17 4 1 34 33 6 1 35 25 4 1 33 29 4 2 34 25 4 2 35 24
  • 多功能测试仪替代 system.time

    我已经看到 我认为是这样 使用了类似于 system time 的函数 它可以同时评估多个函数的时间并输出一个输出 我不记得它是什么 并且用我正在使用的术语进行互联网搜索并没有得到我想要的响应 有人知道我正在谈论的功能的名称 位置吗 你想要
  • 将绘图调用拆分为多个块

    我正在编写一个图的解释 其中我基本上将在第一个块中创建图 然后描述该输出 并在第二个块中添加一个轴 然而 似乎每个块都会强制一个新的绘图环境 因此当我们尝试使用以下命令运行块时会出现错误axis独自的 观察 output html docu
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • 在 R 中创建虚拟变量,排除某些情况为 NA

    我的数据看起来像这样 V1 V2 A 0 B 1 C 2 D 3 E 4 F 5 G 9 我想创建一个虚拟变量R where 0 1 1 2 3 4 and NA 0 5 9 应该很简单 有人可以帮忙吗 我们可以转换V2 into a fa
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • R 中的列乘以子字符串

    假设我有一个数据框 其中包含多个组件及其在多个列中列出的属性 并且我想对这些列运行多个函数 我的方法是尝试将其基于每个列标题中的子字符串 但我无法弄清楚如何做到这一点 下面是数据框的示例 Basket F Type 1 F Qty 1 F
  • r 中训练和测试数据的最小最大缩放/归一化

    我正在创建一个函数 它将训练集和测试集作为其参数 最小 最大缩放 标准化并返回训练集并使用这些same最小值和最小 最大范围的值 标准化并返回测试集 到目前为止 这是我想出的功能 min max scaling lt function tr
  • 将数据框中重叠的范围合并到唯一的组中

    我有一个 n 行 3 的数据框 df lt data frame start c 178 400 983 1932 33653 end c 5025 5025 5535 6918 38197 group c 1 1 2 2 3 df sta
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt

随机推荐

  • 使用 sed、awk、tr 和朋友删除尾随/开始换行符

    我想从文件中删除所有空行 但仅当它们位于文件的末尾 开头时 也就是说 如果它们之前没有非空行 则在开头 并且如果有最后 其后没有非空行 除了 Perl 或 Ruby 等功能齐全的脚本语言之外 这是否可能 我更愿意这样做sed or awk如
  • Haskell:检查两个列表是否相等

    我想检查是否有两个列表A and B是相等的 即a1 b1 a2 b2 我有一个可行的解决方案 all x gt x zipWith A B 另一个想法是递归地执行 a as b bs 检查是否a1 b1并使用剩余列表调用该函数as and
  • 在超类中缓存属性

    例如 我有一个类可以缓存一些值以避免多次计算它们 class A object def init self a b self a a self b b self value None property def value self if s
  • Github 创建带有 2 因素身份验证的令牌

    我正在尝试授权用户并取回令牌 用户已启用两因素身份验证 这是我尝试使用的代码 它不会接受我通过短信获得的代码 如果用户未启用 2fa 则此方法有效 curl i u user H X GitHub OTP code d scopes rep
  • 带中继的 TypeScript:无法解析生成的模块

    In my MessageItem tsx组件我有以下代码 const data useFragment graphql fragment MessageItem message on Message date body message a
  • spaCy 共指解析 - 命名实体识别 (NER) 返回唯一实体 ID?

    也许我跳过了部分文档 但我试图确定标准 NER 工具集中每个实体的唯一 ID 例如 import spacy from spacy import displacy import en core web sm nlp en core web
  • 如何使用webcal协议

    我想创建一个文件 可以使用webcal 协议 最终目标是让用户订阅共享日历 我知道这可以通过一百万种不同的方式来完成 而且webcal有缺点 但请将此问题视为技术问题webcal并且不提供替代方案 如果我希望它允许用户订阅共享日历 其内容应
  • 使用“如果单元格包含#N/A”作为公式条件。

    我需要有关 Excel 工作表的帮助 我如何声明以下内容IF状态正常吗 if A1 n a then C1 B1 else if A1 n a or has value int then C1 A1 B1 在中输入以下公式C1 IF ISN
  • 谷歌分析帐户ios配置

    我正在尝试配置谷歌分析GoogleService info plist文件来自谷歌开发者网站 https developers google com mobile add 昨天我配置了一个应用程序 没有出现任何问题 但今天我无法配置我的第二
  • 如何构建混合阵列

    在 ruby 中 我可以创建充满类型的数组 1 hello world Fixnum String Symbol gt 1 hello here Go中如何实现类似的数组填充混合类型 如何声明数组 您可以通过空界面来做到这一点 interf
  • 拖动时自动滚动可放置的 div

    在这个小提琴中 http jsfiddle net adrianjsfiddlenetuser zyUkd 76 http jsfiddle net adrianjsfiddlenetuser zyUkd 76 没有粉红色背景颜色的按钮可以
  • 随机生成器和 CUDA

    我有一个关于 CUDA 中的随机生成器的问题 我使用 Curand 生成随机数 代码如下 device float priceValue int threadid unsigned int seed threadid curandState
  • 条件属性如何工作?

    我有一些标记为的辅助方法 Conditional XXX 目的是在仅存在 XXX 条件编译符号时使方法进行条件编译 我们使用它来调试和跟踪功能 并且效果很好 在我研究条件编译如何工作的过程中 我发现了几个资料来源 说明了标记有Conditi
  • Android 无法绑定到服务(在应用程序计费中)

    我正在尝试在我的应用程序中实现应用程序计费 但我遇到了一些问题 我正在使用 Android 开发人员网站上的示例 每次我启动将连接到计费服务的活动时 它都会向我显示一个无法连接到服务器的对话框 当我按 了解更多 时 它会转到一个正在解释我的
  • 将右侧“完成”按钮 (UIBarButtonItem) 添加到 UINavigationController

    我看到这里有人问了类似的问题 如何向 UINavigationController 添加右键 https stackoverflow com questions 1219779 how to add a right button to a
  • VS Code 找不到 python 3 解释器

    我是第一次安装 Python 3 7 2 并且使用 VS Code python 扩展 当我跑步时python V I get Python 2 7 10这是不正确的 当我选择usr local bin python3VS Code 中的解
  • 一个应用程序中有两个 google-services.json (具有不同的帐户)

    是否可以在 Android 应用程序中使用两个不同的帐户来访问谷歌的两种不同服务 我想通过帐户使用 Google Analytics 分析 电子邮件受保护 cdn cgi l email protection和 Firebase 帐户崩溃报
  • “git checkout <文件名>”和“git checkout -​- <文件名>”之间的区别

    http norbauer com notebooks code notes git revert reset a single file http norbauer com notebooks code notes git revert
  • 主要编译器/工具链对 C99 的支持状况如何?

    对我在这里发表的评论的回应让我停下来思考 我真的不知道 C99 支持的状况如何 维基百科提供了一些编译器的详细信息 但我对 C99 不够熟悉 无法了解该标准的所有细节 因此我正在寻找该问题的格式塔概述答案 主要编译器 工具链对 C99 的支
  • ggplot2 的小提琴图与 x 轴上的数据集的顺序不同

    I created the using below code But on the x axis Models name are not in order as in the data set i e Observed SVM Grid S