ggplot2 - 自动调整图表和坐标轴标题大小

3

我创建了一些ggplot2的柱形图,屏幕上打印正常。 然而,当我在PDF设备上打印时,图表和轴标题太大了 - 有时会超出x轴的左右边界。 除了标题/轴标题之外,这些图表都没有设置任何opts() - 全部采用默认设置。 我在这里缺少什么? 有没有办法告诉ggplot自动调整文本大小,使图表在PDF中看起来很好? 是否可以不显式设置opts()来实现这一点?


尝试更改pdf()中的pointsize参数。有时这会起作用。 - Seb
我认为这与par(ps=...)相同。我尝试在pdf()中使用pointsize,但图形没有改变。奇怪的是,它使用14点大小,而我的ps/pointsize是12。不确定它如何确定14。 - Suraj
我认为14是默认主题的结果,它将基本字体大小乘以1.2。看起来我可以通过正确的主题来解决这个问题,但我必须检测绘图区域和文本本身的大小,以确定主题的参数...希望有一些开箱即用的东西。 - Suraj
根据您的需求,您还可以使用“pdf”的高度和宽度参数来使画布变大。 - Gregor Thomas
谢谢。我正在编写标准的PDF打印尺寸,所以我认为这不会有帮助。 - Suraj
1个回答

0
我能想到的最好的解决方案是创建一个函数来创建一个主题(比如theme_bw()),并提供足够的参数使其智能地调整大小。将在几天内保持此帖子开放,以查看是否有其他聪明的想法。

抱歉挖掘一下,不过我想知道您是否能提供一个使用theme_bw()自动调整大小的示例?谢谢。 - chutsu
不可能使用theme_bw进行自动调整大小。参数是base_size和base_family。这不足以提供上下文。至少需要知道图表在页面上占用的区域大小。因此,您可以创建一个带有该参数的函数theme_bw_autosize。然后,您需要进行大量的尺寸计算来填充主题选项,例如strip.text.x中的size。最好的算法需要绘图本身。然后函数可以查询各种文本元素的图表,并进行更好的尺寸计算。总之,这很困难。 - Suraj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接