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

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(使用前将#替换为@)

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

  • 自动使用 LRT 评估整个因子变量的显着性

    包含一个或多个因子变量的多变量回归模型的 R 输出不会自动包含模型中整个因子变量的显着性的似然比检验 LRT 例如 fake data frame x1 rnorm 100 x2 sample LETTERS 1 4 size 100 re
  • 由于 NA,无法对数据帧进行子集化(过滤)

    为什么在 dplyr 下面的代码中filter不返回与基本 R 子集相同的 data frame 事实上 它们都没有按预期工作 我想删除观察 行 同时 b 1 AND c 1 也就是说 我只想删除第三行 require dplyr df l
  • 根据 r 中另一个数据帧中的列填充数据帧中的列

    我有一个评论数据框 如下所示 df1 Comments Apple laptops are really good for work we should buy them Apple Iphones are too costly we ca
  • 如何在 R 中调整/控制树形图中的比例(使用“portfolio”库)?

    我正在使用 R 和 portfolio 库来构建树形图 比例默认为 1000 到 1000 例如 我需要它是 0到1000 我知道 map market 有一个 scale 参数 但我不知道要传递给它什么 围绕零的对称颜色映射被硬编码到ma
  • 使用 tidyverse 在 tibble 中“取消嵌套” data.frame 列

    我正在处理从 www 调用返回的一些数据jsonlite and as tibble以某种方式转换成data frame column This result数据有一个Id整数列和ActionCodedata frame 列有两个内部列 这
  • ggplot `facet_grid` 标签被切断

    In ggplot 当使用facet grid space free y 如果组内的点数较少 则分面标题会被截断 例如 library tidyverse d lt tibble x factor 1 40 y rnorm 40 g c r
  • LaTex 中与 knit 和 xtable 交叉引用的问题

    我目前正在与 R Studio 合作 使用 LaTex 中的 R knitr 生成 PDF 文档 在这些文档中 我想在文本中引用的表格中展示我的部分结果 我使用 R 中的 xtable 包生成这些表 它运行良好并为我提供了正确的表 到目前为
  • 将循环转换为并行计算的函数

    我正在使用 R 编程语言 我遇到这个问题 我试图找出两个 shapefile 之间的成对交集 即第一个 shapefile 中的每个多边形与第二个 shapefile 中的所有多边形相交的百分比 我想我找到了解决这个问题的基本方法 Load
  • 替换列表列表中的元素

    The applyR 中的函数是简化 for 循环以获得输出的好方法 是否有一个等效的函数可以帮助人们在替换向量的值时避免 for 循环 通过示例可以更好地理解这一点 Take this list for example x list li
  • decompose() 的周期太少[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 错误看起来像这样 decompose
  • 基于服务器中的条件逻辑呈现闪亮的用户输入

    我正在尝试设置一个闪亮的导航栏面板页面 其中用户控制我根据一组单选按钮中所做的初始选择来显示更改 我直接在 ui 中渲染单选按钮 然后在 Server r 中的 观察到的 逻辑控制结构内构建条件控件 弹出错误是因为我的初始 if 语句计算结
  • R::bigmemory - 如何创建角色big.matrix?

    我尝试使用bigmemory封装在R我一开始就陷入困境 我愿意 temp lt matrix paste a 1 10 5 2 并得到一个字符矩阵 没关系 但后来我尝试 x lt as big matrix temp type char 我
  • 如何在R中删除重复项

    我有一个非常大的数据集 如下所示 df lt data frame school c a a a b b c c c year c 3 3 1 4 2 4 3 1 GPA c 4 4 4 3 3 3 2 2 school year GPA
  • LDA with topicmodels,如何查看不同文档属于哪些主题?

    我正在使用 topicmodels 包中的 LDA 我已经在大约 30 000 个文档上运行它 获取了 30 个主题 并获得了主题的前 10 个单词 它们看起来非常好 但我想看看哪些文档属于哪个主题的概率最高 我该怎么做 myCorpus
  • 如何在for循环中引用变量?

    我正在循环访问不同的 data tables 和 data table 中的变量 但我在引用内部变量时遇到问题for loop dt1 lt data table a1 c 1 2 3 a2 c 4 5 2 dt2 lt data tabl
  • 如何从 Fortran 调用 R 函数?

    根据http gallery rcpp org articles r function from c http gallery rcpp org articles r function from c Rcpp 允许用户从 C 调用 R 函数
  • R - Plm 和 lm - 固定效应

    我有一个平衡面板数据集 df 本质上由三个变量组成 A B and Y 对于一堆独特识别的区域来说 它会随着时间的推移而变化 我想运行一个回归 其中包括区域 下面等式中的区域 和时间 年份 固定效应 如果我没记错的话 我可以通过不同的方式来
  • 纵向序列数据的三次样条方法?

    我有一个串行数据 格式如下 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 的函数 它可以同时评估多个函数的时间并输出一个输出 我不记得它是什么 并且用我正在使用的术语进行互联网搜索并没有得到我想要的响应 有人知道我正在谈论的功能的名称 位置吗 你想要
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab

随机推荐

  • 具有多重身份验证的 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