将字体大小调整为绘图设备的大小

2024-02-25

我经常遇到必须调整输出图像大小的情况。不幸的是,这意味着通常我必须调整字体大小,以使内容可读。

例如,如果下面的图

library(ggplot2)
library(tibble)
library(stringi)

set.seed(1)

df <- tibble(
  x = stri_rand_strings(10, 20), 
  y = runif(10) * 10, 
  label = stri_rand_strings(10, 10)
)


p <- ggplot(df, aes(x, y)) +
  geom_text(aes(label = label)) +
  scale_x_discrete(position = "top") +
  theme(axis.text.x = element_text(angle = 90, hjust = 0))

保存为 12'' x 6'' 图像,看起来不错:

p + ggsave("test_small.png", width = 12, height = 6, unit = "in")

12'' x 6'' 输出 https://i.stack.imgur.com/FG8Qk.png

但是,如果我将尺寸增加到 36'' x 18'' 字体将无法阅读:

p + ggsave("test_large.png", width = 36, height = 18, unit = "in")

36 英寸 x 18 英寸 https://i.stack.imgur.com/nsGMR.png

是否有任何通用策略允许我们更改输出分辨率而无需不断修改字体大小?


您需要定义文本项的大小以及绘图环境。

由于您想要动态缩放,因此最简单的方法可能是缩放字体并将大小保存为相同的值。看ggplot2 - 大小单位 https://stackoverflow.com/questions/17311917/ggplot2-the-unit-of-size除以 2.834646 值以校正字体大小。

base = 6 # set the height of your figure (and font)
expand = 2 # font size increase (arbitrarily set at 2 for the moment)

 ggplot(df, aes(x, y)) +
   geom_text(aes(label = label), size = base * expand / 2.834646) +
   scale_x_discrete(position = "top") +
    theme(axis.text.x = element_text(angle = 90, hjust = 0, size = base * expand ),
     axis.text.y = element_text(size = base * expand )) 

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

将字体大小调整为绘图设备的大小 的相关文章

  • 如何在闪亮中使用带有reactiveValues的debounce

    我知道我可以像这样将 debounce 与reactive 结合使用 这就是我需要的行为 但我想改用reactiveValues ui lt fluidPage textInput inputId text label To see how
  • 修改 GGplot2 对象

    然而 我很好奇 是否可以添加任何特定的图例或将哪个物种对应于观察到的预期绘图中 以分别知道它是哪个圆圈 我目前使用的是一个名为 finches 的假数据集 该包称为 cooccurr 它创建一个 ggplot 对象 我很好奇如何实际编辑它以
  • 在ggplot2中添加边框或背景以缩放图例guide_colorbar

    我在 ggplot 图中有一个从白色到红色的颜色条 并且白色边框在白色背景上不太明显 有没有办法对图例中的刻度线进行不同的着色或在渐变比例周围添加边框 这是一个最小的例子 df lt data frame x lt rnorm 10 y l
  • Foreach循环无法找到对象

    我正在尝试将 foreach 与并行后端结合使用来加速计算 用于特征选择的 AUCRF 随机森林的交叉验证 如果这确实重要的话 在这样做的过程中 我需要获取向量的子集 向量的名称可以更改 但可以作为字符向量进行访问 我使用 eval par
  • rvest - 在 1 个标签中抓取 2 个类

    我是新来的 如何提取标签中具有 2 个类名或仅 1 个类名的元素 这是我的代码和问题 doc lt paste span class a1 b1 text1 span span class b1 text2 span library rve
  • 添加带有错误的弹出窗口,警告闪亮

    有什么办法可以添加一个popup 可关闭的窗口 其中包含警告或其他消息Shiny 我用来构建 Web 应用程序的 R 包 我已经寻找了一段时间但没有任何结果 虽然我不认为有任何本地可用的东西shiny 你可以尝试添加jQueryUI到您的应
  • 在 R 中使用 randomforest() 进行分类?

    我最初有一个由 N 行 12 列组成的数据框 最后一列是我的班级 0 或 1 我必须将整个数据框转换为数字 training lt sapply training temp as numeric 但后来我认为我需要将类列作为因子列来使用 r
  • 如何减小 R Plot 中图例的大小,同时仍使其可读?

    我试图用 R 中的两个 y 轴绘制多年来的一些数据 但是 每当我尝试包含图例时 图例就会主导我的绘图 当我使用其他地方建议的解决方案时 例如keyword和 或使用cex论据 在另一篇文章中建议here https stackoverflo
  • R闪亮的html小部件之间的交互

    我正在开发一个 R 闪亮应用程序 它使用多个 html 小部件 特别是网络D3 d3热图 and 和弦诊断 这些小部件单独工作正常 但是 在同一页面中使用它们会留下一个空格处他们应该在哪里 这是显示错误的可重现代码 在 UI 中注释绘图线
  • 计算级别内的值

    我在 R 中生成了一组级别cut 例如假设 0 到 1 之间的小数值 分为 0 1 个区间 gt frac lt cut c 0 1 breaks 10 gt levels frac 1 0 001 0 1 0 1 0 2 0 2 0 3
  • Shiny 中的模态对话框:可以调整宽度但不能调整高度

    在我的 Shiny 应用程序中 我有几个来自闪亮BS 包的模式窗口 我可以像这样调整这些模式窗口的宽度 tags head tags style HTML modal lg width 1200px abs 1 background col
  • 单击并按住 R 中的按钮闪亮?

    我希望能够通过单击 R 闪亮按钮来更改参数的值 所以我需要按钮 一个用于增加值 一个用于减少值 我想在按住按钮的同时保持值以一定的速度减少 增加 通过释放按钮的点击 动作应该停止 到目前为止我还没有找到这个选项actionButtons在
  • 根据值的运行总计创建组

    我的数据在一个变量 Y 上是唯一的 另一个变量 Z 告诉我每个 Y 中有多少人 我的问题是我想从这些 Y 和 Z 创建 45 人的组 我的意思是 每当运行总计Z 达到 45 创建一组 然后代码继续创建下一组 我的数据看起来像这样 ID X
  • 在 for 循环中绘制的多个 ggplot2 绘图的网格

    作为一个新的 ggplot2 用户 我对可能性的数量感到有点迷失 并且很难在网上找到我认为简单问题的简单答案 我想在同一张纸上显示 ggplot2 的多个图 但知道这些图来自 for 循环 以下示例无法编译 仅用于说明 for i in c
  • 包检查时如何有效处理未压缩的保存?

    在最近开发一个包的过程中 我将数据集包含在data 我的包的文件夹 在我的具体情况下 我有 5 个数据集 所有这些数据集都位于data table格式 尽管我在下面描述的问题仍然存在 如果我将它们保留为data frame 我已将每个人单独
  • 有效地将环境从内部功能转移到全局环境

    我有一个在其中创建环境的函数 我希望将该环境分配给全局环境 目前我通过将环境分配给来做到这一点globalenv 作为最后一步 如下 funfun lt function inc 1 dataEnv lt new env dataEnv d
  • ggplot 中跨组的连续线

    我有一个数据时间序列 其中观察了一些数据 模拟了一些数据 我想生成整个数据系列随时间变化的图 其中颜色表示数据源 但是 我只能弄清楚如何使 ggplot 中的 geom line 连接同一组中的点 这是一个例子来说明 Create samp
  • 使用 ggplotly(ggplot2 withplotly)时可以去掉注释中的跟踪标签吗?

    使用ggplotly时是否可以删除注释中的跟踪标签 例如 library ggplot2 library plotly g lt ggplot iris aes Sepal Width Sepal Length geom point ann
  • 按绝对值排序

    有谁知道如何按绝对值对 R 中的向量进行排序 所以 2 3 1 gt 1 2 3 etc 如果我在 python 中这样做 我会创建一对每个值及其符号 按绝对值对对列表进行排序 然后重新应用符号 但我对 R 很陌生 所以不知道如何执行此操作
  • 使用 SparkR 1.5 从 RStudio 中的 hdfs 读取大文件(纯文本、xml、json、csv)的选项

    我是 Spark 新手 想知道除了下面的选项之外是否还有其他选项可以使用 SparkR 从 RStudio 读取存储在 hdfs 中的数据 或者我是否正确使用它们 数据可以是任何类型 纯文本 csv json xml 或任何包含关系表的数据

随机推荐

  • 具有多重身份验证的 AWS CodeCommit。不断出现致命错误:无法访问..请求的 URL 返回错误:403

    有什么问题 我的 IAM 用户有两个策略 管理员访问 and 强制多因素身份验证 When 强制多因素身份验证策略已附加 从 Windows 命令行 尝试对存储库执行任何操作时出现 403 错误 例如 git clone 当我删除策略时 我
  • Rails 使用活动存储读取 csv 文件数据

    我有这门课 并且正在使用主动存储 class MaterialsUpload lt ApplicationRecord has one attached csv file end 这是附件
  • 在一个可执行文件中使用 C# 编写的可自删除应用程序

    是否可以用 C 创建一个应用程序 使其能够在某种情况下删除自身 我需要为我的应用程序编写一个更新程序 但我不希望在更新过程后留下可执行文件 有一个官方的 Net OneClick 但由于与我的 HTTP 服务器不兼容以及 OneClick
  • Python 3 imaplib.fetch TypeError:无法将字节连接到 int

    我有一些代码可以获取 IMAP 电子邮件 并且在 Python 2 中运行得很好 在 Python3 中 我收到以下错误 回溯 最近一次调用最后一次 文件 mail py 第 295 行 位于项目 返回消息 x 文件 mail py 第 1
  • Windows 服务如何确定其 ServiceName?

    我查了一下 找不到一个简单的问题 Windows 服务如何确定其启动的 ServiceName 我知道安装可以破解注册表并添加命令行参数 但从逻辑上讲 这似乎是这样should没有必要 所以才有这个问题 我希望比注册表黑客更干净地运行单个二
  • 如何删除 pandas 数据框中具有负值的所有行?

    我有一个混合了列数据类型 float64 和对象的数据框 我需要动态删除所有具有负值的行 这是我到目前为止所拥有的 df df df gt 0 all axis 1 但因为有些列不是数字 所以它基本上会擦除整个 df 我怎样才能构建这个只考
  • 安装unf_ext(0.0.7.2)时出错,Bundler无法继续

    我试图将 diaspora 安装到本地主机中 我删除了Gemfile lock文件并尝试过bundle install我看到了这个 这些是我已经尝试过的事情 ARCHFLAGS Wno error unused command line a
  • Terraform 抛出“groupName 无法与参数子网一起使用”或“VPC 安全组不能用于非 VPC 启动”

    当试图弄清楚如何配置aws instance使用 AWS VPC 时会发生以下错误 Error launching source instance InvalidParameterCombination The parameter grou
  • 用于创建新元素的突变观察者

    我试图在创建特定 div 时使函数关闭 用最简单的话来说 我有这样的事情 a href Click me a 之前 我让突变事件监听 div bar 的创建 像这样 bar live DOMNodeInserted function eve
  • 程序集绑定重定向和代码分析

    我在 Visual Studio 2010 的 Mvc 3 0 0 0 项目中使用 DotNetOpenAuth 引用 System Web Mvc 版本 1 0 0 0 我正在使用程序集绑定重定向 如下所示
  • 使用 Flex 生成的文件时出现问题

    我正在尝试设置一个使用 flex 的项目 fast lex 而不是 adobe 我在 Ubuntu 上运行 并通过 apt get 方法安装了 flex 我用谷歌搜索了编译错误 我要么找到了围绕它创建自己的补丁的人 要么找到了很多论坛 人们
  • 如何简单地显示 YQL 的 xml 输出或将 JSON 输出为 html

    因此 我一直在研究一种从页面中抓取数据并显示它的方法 以与源格式大致相同的格式 我发现了 YQL 我发现它很棒 除了我不知道如何显示整个输出 没有什么特别的 除了基本格式 YQL输入代码为 select from html where ur
  • Python:无法分配给文字

    我的任务是编写一个程序 要求用户输入 5 个名称并将其存储在列表中 接下来 它随机选择这些名字之一 并宣布该人为获胜者 唯一的问题是 当我尝试运行它时 它说can t assign to literal 这是我的代码 import rand
  • 是否可以找到当前正在使用的 tmux 套接字?

    我正在尝试获取当前正在使用的 tmux 套接字列表 但到目前为止我想出的最佳解决方案是签入 tmp tmux 或 TMPDIR 据我所知 即使当前没有 tmux 会话正在使用这些套接字 tmux 也会将这些套接字保留一段时间 因此 我希望有
  • Django 表单未使用 ModelChoiceField 保存 -foreignkey

    我的网站上有多个表单 可以将信息保存到我的 PostgreSQL 数据库中 我正在尝试创建一个表单来保存我的设置模型的信息 class Set models Model settitle models CharField Title max
  • 没有在 DLL 项目中创建 WPF 窗口?

    Visual Studio 不允许我在 DLL 项目中创建 WPF 窗口是否有原因 我通过在应用程序项目中创建一个窗口并将其复制到我的 DLL 项目来 解决 这个问题 我还发现我可以创建一个 UserControl 并将基类更改为 Wind
  • 连接 Java 和 Python Flask

    我有一个简单的 Flask API from flask import Flask jsonify app Flask name app route def hello world return Hello World app route
  • 如何通过批处理文件执行cmd命令?

    我想编写一个批处理文件 它将按给定顺序执行以下操作 Open cmd 运行cmd命令cd c Program files IIS Express 运行cmd命令iisexpress path C FormsAdmin Site port 8
  • 在 Android 上隐藏 Toast

    我正在开发一个应用程序 它使用系统活动将联系人添加到手机内存中 此外部活动在保存联系人后启动 Toast 有没有可能摆脱它 如果我可以获得对它的引用来调用 cancel 或取消所有排队的 Toast 那就完美了 有Toast管理器吗 如果您
  • 将字体大小调整为绘图设备的大小

    我经常遇到必须调整输出图像大小的情况 不幸的是 这意味着通常我必须调整字体大小 以使内容可读 例如 如果下面的图 library ggplot2 library tibble library stringi set seed 1 df lt