如何减少 x 轴上两个离散值之间的间距?

2024-01-14

首先,我想在没有 ggplot 的情况下完成此操作。

我有一个箱线图脚本:

data <- data.frame(
  u    = c(0.522, 0.488, 0.474, 0.443, 0.510, 0.443, 0.420, 0.554, 0.333, 0.414,
           0.467, 0.606, 0.588),
  ub   = c(0.594, 0.568, 0.578, 0.523, 0.577, 0.501, 0.522, 0.623, 0.498, 0.511,
           0.544, 0.654, 0.639),
  nu   = c(0.646, 0.620, 0.644, 0.607, 0.667, 0.614, 0.631, 0.701, 0.586, 0.589,
           0.664, 0.739, 0.744),
  nub  = c(0.733, 0.701, 0.700, 0.698, 0.724, 0.701, 0.722, 0.777, 0.630, 0.663,
           0.703, 0.78, 0.787),
  wnub = c(0.815, 0.782, 0.757, 0.764, 0.792, 0.771, 0.838, 0.860, 0.700, 0.703,
           0.774, 0.837, 0.863))
boxplot(data, las=1, par(mar=c(7.5, 4.2, 0.25, 0.15)), axes=FALSE, xlab=NA,
        ylab=NA, boxwex=.4, outline=FALSE, ylim=c(0:1))
box()
labnames = c("Unigrams",
             "Unigrams\n& Bigrams",
             "Noun Unigrams",
             "Noun Unigrams\n& Noun Bigrams",
             "Noun Unigrams\n& Noun Bigrams\n(positional weights)")
axis(side=1, tck=-0.025, labels=FALSE)
axis(side=1, lwd=0, labels=FALSE, at=c(1:5), cex.axis=1)
text(seq(1, 5, by=1), par("usr")[3]-.2, labels=labnames, srt=-90,
     xpd=TRUE, adj=.25)
axis(side=2, tck=-0.02, labels=NA)
axis(side=2, lwd=0, cex.axis=1, las=1)
mtext(side=1, "Feature Sets", line=6.5, cex=1.5)
mtext(side=2, "F-Score", line=3, cex=1.5)

产生下图:

我对这种浪费的空白量感到恼火。我一直在尝试减少空间的一种方法是使用“asp”将离散的 x 轴值靠近在一起,但它不会改变任何东西。我怎样才能减少盒子之间的巨大间隙?

另外,如果还有其他方法可以减少图片中的空白,请分享您的想法。


选项1:如果您将图像保存为 Latex 的 PDF,您可以使用以下命令设置宽度和高度pdf(file=file, width=width, height=height)。然后你可以忽略boxwex参数一并。

选项2:或者,您可以使用at参数告诉boxplot框应放置在 X 轴的哪个位置:

at.x <- seq(1,by=.5,length.out=5) # set here the X-axis positions
boxplot(data, par(mar=c(8.5, 4.2, 0.25, 0.15)), outline=FALSE,
        cex.lab=1.5, ylab="F-score", xlab=NA, las=3, names=labnames,
        boxwex=.4, ylim=c(0:1),
        at=at.x)
# display the X-axis name
mtext(side=1, "Feature Sets", line=7.2, cex=1.5)

可以看到代码也被大大简化了。您可以进一步玩xlim参数为boxplot减少绘图的内部边距。举个例子试试xlim=c(0.8,3.2)。结果:

选项 3: If you really为了节省空间,您可以使用颜色和图例:

cols <- c("white","red","yellow","green","blue")
boxplot(data, par(mar=c(0.2, 3.2, 0.25, 0.15)), outline=FALSE,
        axes=F, ylab=NA, xlab=NA, names=NA, col=cols)
box()
axis(2)
mtext(side=2,"F-score",line=2.2)
legend("bottomright", cex=.8, fill=cols,
       c("Unigrams", "Unigrams & Bigrams", "Noun Unigrams",
         "Noun Unigrams & Noun Bigrams",
         "Noun Unigrams & Noun Bigrams (positional weights)"))

最后,为什么要把Y轴的界限设置为0和1呢?这浪费了很多空间。另外,为什么要删除异常值?只是作为 IR 研究员我自己问:-)

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

如何减少 x 轴上两个离散值之间的间距? 的相关文章

  • r : 直方图上的 ECDF

    在 R 中 与ecdf我可以绘制经验累积分布函数 plot ecdf mydata 与hist我可以绘制数据的直方图 hist mydata 如何在同一图中绘制直方图和 ecdf EDIT 我尝试做类似的东西 https mathemati
  • profvis() 何时以及为何显示“源不可用”?

    我经常分析 R 代码 并大量使用 profvis 对于某些函数 浏览器窗口的上半部分会显示源代码 有时则不会 我不知道什么时候会出现这种情况 对我来说这似乎是随机的 有谁知道 profvis 何时以及为什么无法在顶部窗口中显示代码 发生这种
  • Quarto/Rmarkdown 中的美人鱼图:狭窄且模糊

    我正在尝试生成 pdf 格式的四开文档 稍后会生成 word 格式 我遇到了美人鱼图的问题 请在下面找到一个示例 qmd 文件来说明该问题 所以首先它应该支持 mermaid 标签 但当我这样做时 我无法在 rstudio 中 运行 单元
  • 正则表达式挑选括号之间的一些文本[重复]

    这个问题在这里已经有答案了 可能的重复 提取 R 中所有括号内的信息 正则表达式 https stackoverflow com questions 8613237 extract info inside all parenthesis i
  • udunits2 R 安装:找不到 udunits2.h

    我正在尝试在 R 中安装 udunits2 以满足对ggforce包裹 但是 安装程序在检查 udunits2 时始终失败 我已经尝试过中的说明this https stackoverflow com questions 47059517
  • 使用 ggplotly(ggplot2 withplotly)时可以去掉注释中的跟踪标签吗?

    使用ggplotly时是否可以删除注释中的跟踪标签 例如 library ggplot2 library plotly g lt ggplot iris aes Sepal Width Sepal Length geom point ann
  • 仅在具有重复块名称的另一个 Rmarkdown 文档中运行一个 Rmarkdown 文档中的代码

    我正在 Rmarkdown 中编写一系列相互补充的报告 我想将上一份报告的结果纳入我目前正在编写的报告中 我看到其他建议使用的问题purl从 Rmarkdown 文档中提取 R 代码然后运行它 所以我尝试了以下操作 r read previ
  • r Shiny 中的 fileInput 函数没有响应

    我是 R 和 R闪亮的新手 一直致力于构建一个统计应用程序 该应用程序将允许用户导入文件 然后对数据运行不同的统计程序 直到最近 fileData 函数一直对我来说运行良好 现在每当我尝试上传文件时 都不会打开任何内容 我已尝试了所有我能想
  • mclapply 用户时间大于已用时间

    我正在尝试使用mclapply的功能parallel封装在R 该函数通过计算对数似然距离将值分配给序列矩阵 这是一个 CPU 密集型操作 所结果的system time价值观令人困惑 gt system time mclapply work
  • 解释 survreg 中的威布尔参数

    我正在尝试使用从 R 中的 survreg 估计的参数生成逆威布尔分布 我的意思是 对于给定的概率 这将是在 MS Excel 中实现的小型模拟模型中的随机数 返回使用我的参数预计出现故障 的时间 我理解逆威布尔分布的一般形式是 X b l
  • 按绝对值排序

    有谁知道如何按绝对值对 R 中的向量进行排序 所以 2 3 1 gt 1 2 3 etc 如果我在 python 中这样做 我会创建一对每个值及其符号 按绝对值对对列表进行排序 然后重新应用符号 但我对 R 很陌生 所以不知道如何执行此操作
  • 如何在 Shiny 中动态渲染的 textInput 添加样式元素

    你好堆栈溢出 在我最近提出的问题中 我已经解决了一些与动态渲染 UI 元素相关的主要问题 并在一些了不起的人的帮助下动态创建了观察者 参见此处 动态渲染的 UI 如何在第二次运行时删除旧的反应变量 https stackoverflow c
  • 分割单个 SpatialPolygons 对象的多边形部分

    在 R 中 我有一个SpatialPolygons包含数百个多边形的对象 即多个多边形 我想分割这个SpatialPolygons对象放入列表中Polygons 即孔应保持连接到父多边形 知道如何做到这一点吗 EDITED 使用以下提供的示
  • 如何使用r中的dplyr在特定位置插入空白行

    我想在数据框中的特定位置插入空白行 我的数据框是这样的 dat lt data frame group c rep A 1 rep B 4 rep C 2 rep D 2 group 1 A 2 B 3 B 4 B 5 B 6 C 7 C
  • R:如何更改ggvis闪亮应用程序中特定范围的绘图背景颜色

    I have a simple shiny app like below and you can run it The plots are created by ggvis and user can choose student name
  • 如何根据查找表匹配多列

    我有以下两个数据框 lookup lt data frame id c A B C price c 1 2 3 results lt data frame price 1 c 2 2 1 price 2 c 3 1 1 我现在想要浏览所有列
  • 使用 dplyr 的 select 引用变量名[重复]

    这个问题在这里已经有答案了 通常我会想要选择变量的子集 其中该子集是函数的结果 在这个简单的例子中 我首先获取与宽度特征相关的所有变量名称 library dplyr library magrittr data iris width var
  • 在 R 中收集多组列[重复]

    这个问题在这里已经有答案了 我有一个宽数据框 需要将其收集或融化成一个高数据框 我遇到的问题是我有几组列需要保持关联 分组 我每个表单提交有 2 个用户 每个用户有 3 列数据 我想将这 6 列基本上以 3 组的形式堆叠起来 以便每个用户都
  • 求解非线性方程组

    我正在尝试求解以下四个方程组 我尝试过使用 rootSolve 包 但似乎我无法通过这种方式找到解决方案 我正在使用的代码如下 model lt function x F1 lt sqrt x 1 2 x 3 2 1 F2 lt sqrt
  • 当在另一行中找到元素逗号分隔时合并行

    您好 我有一个数据框 例如 species family Events groups 1 SP1 A 10 22 G1 2 SP1 B 7 G2 3 SP1 C D 4 5 6 1 3 G3 G4 G5 G6 4 SP2 A 22 10 G

随机推荐

  • 加入一组具有超时的 python 进程

    我正在使用 python 的多处理库来创建多个进程 from multiprocessing import Process processes Process target function for function in FUNCTION
  • 使用变量与文字时远程查询速度很慢

    我到处寻找这种情况 但找不到解决方案除了动态 SQL 我不想使用它 这是我想要在服务器 2 上更新的表 Stuff Id UNIQUEIDENTIFIER stuffname NVARCHAR 64 我需要从服务器 1 更新它 所以我一直在
  • 使用 np.divide (以及其他浮点数)将 0 除以 0 时如何抑制错误消息?

    我的尝试 import numpy as np np seterr divide ignore a np array 4 3 0 0 b np array 1 0 0 np divide a b 我得到的输出 main 1 RuntimeW
  • 如何在张量流中并行加载数据?

    首先我先介绍一下我的申请背景 我的磁盘中有大约 500 000 个以 avi 文件形式保存的视频 我将使用它们作为训练样本 要使用它们 我们可以将它们同时加载到内存中 然后将每个批次输入模型进行试验 这是最简单的方法 然而我的记忆是NOT足
  • 调用未定义的方法 Illuminate\Database\Query\Builder::save()

    我试图在现有记录上调用 Eloquent 的 save 方法 但从 Illuminate 的查询生成器中收到错误 按照 Laravel 网站上的文档进行操作http laravel com docs eloquent insert upda
  • 使用 React Query 过滤从 API 获取的列表

    我正在使用 React Query 第一次 来管理对 API 的调用 我正在获取发票列表 到目前为止我已经在下面的代码中成功完成了此操作 我现在想根据每个发票对象具有的状态属性 它是 已付款 待处理 或 草稿 使用一系列复选框来过滤此列表
  • Pharo Smalltalk 和 mySql

    我正在寻找知道如何连接 Pharo Smalltalk 和 mySql 的人 我只想做一些基本的事情 比如 从名称中选择 然后将结果读入 Pharo 有人对这个有了解吗 如果你有一个屏幕视频那就太好了 我会给你买杯啤酒 查看DBXTalk
  • Intellij IDEA中有没有类似Sublime的“HTML:编码特殊字符”的功能

    I m looking something like the functionality given in Sublime Text by the shortcut windows Ctrl Shift P named HTML Encod
  • 如何在类型提示中指定函数类型?

    如何将变量的类型提示指定为功能类型 没有typing Function 并且我在相关 PEP 中找不到任何内容 PEP 483 https www python org dev peps pep 0483 As jonrsharpe htt
  • 通过布尔掩码数组选择 numpy 数组的元素

    我有一个布尔掩码数组a长度n a np array True True True False False 我有一个二维数组n列 b np array 1 2 3 4 5 1 2 3 4 5 例如 我想要一个仅包含 True 值的新数组 c
  • C#进程启动焦点问题

    当我开始一个新进程时 它会自动获得焦点 如何防止它获得焦点或将焦点返回到我的应用程序 这是我正在使用的代码 string path c temp myprocess exe ProcessStartInfo info new Process
  • React、Jest 和 Material-UI:如何测试在模式或弹出窗口中呈现的内容

    有一些 Material ui 组件不会将其结果渲染到与其父组件放置的位置相同的位置 其中我们有Dialog Menu etc 这显然使得在安装了某些父组件的 jest js 包装器中测试其内容是否存在是不可能的 例如给定以下组件 clas
  • 如何动态设置膨胀线性布局中的边距?

    我添加了一个linearlayout in a linearlayout动态地使用此代码 LinearLayout root LinearLayout findViewById R id root View child inflater i
  • 停止页面加载时自动运行 ASP 脚本

    我这里遇到问题了 我创建了一个用于将记录添加到数据库中的页面 它工作正常 但是每次加载页面时都会运行 asp 脚本 每次加载页面时都会向数据库输入一条空白记录 这非常烦人 因为它与我有其他脚本 我觉得我很愚蠢 但我所需要的只是让脚本仅在单击
  • php 是否在“html body”之前加载?

    很难解释这个问题 但我目前正在将 php 页面中的变量传递给一些 html 隐藏输入 我使用 JavaScript 函数从隐藏输入中获取这些值 该函数的调用方式如下 它现在可以在我的系统上运行 但是从 php 传递的值是否有可能无法通过 因
  • 忽略第一维的二维 JavaScript 数组问题

    简而言之 我根据当前月份和日期填充一个数组 我不会在这里复制代码来获取当前月份和日期 因为它工作正常 它适当地返回变量 月 和 日 我的数组列表包含一年中每一天的项目 该数组以 开始 new var content 然后数组是这样列出的 删
  • 即使代码未编译,GroovyClassLoader 对 parseClass 的调用也会成功

    我试图将 Groovy 脚本作为类动态加载 但即使脚本的代码未编译 也会创建类对象 例如 我加载 Groovy 脚本的 Groovy 代码的简化版本如下 GroovyCodeSource src new GroovyCodeSource b
  • Grails clean 不起作用

    我正在使用 Grails 2 0 1 当尝试运行应用程序时 我发现 NoClassDefFoundError 错误 2012 10 16 15 24 25 301 http bio 8080 exec 9 错误错误 GrailsExcept
  • 无法将 LINQ to SQL 类添加到 VS2010 中的项目

    我刚刚在 Visual Studio 2010 RC 中遇到了一些以前没有发生过的事情 比如昨天 这里没有软件变化 但我昨天在编译时确实遇到了一些麻烦 需要重新启动 我无法通过添加对话框将 LINQ to SQL 类添加到任何项目 我创建了
  • 如何减少 x 轴上两个离散值之间的间距?

    首先 我想在没有 ggplot 的情况下完成此操作 我有一个箱线图脚本 data lt data frame u c 0 522 0 488 0 474 0 443 0 510 0 443 0 420 0 554 0 333 0 414 0