r - R ggplot - 使用 ggsave 设置图例/轴大小
问题描述
所以我有这样的df
df <- read.table(text="
amount nr date
50 1 2017-01-01
150 1 2017-01-03
1500 2 2017-01-04
1450 2 2017-01-04
1250 2 2017-01-04
950 1 2017-02-05
120 3 2017-02-06
300 3 2017-04-06
", header=TRUE)
我从这个 df 创建了一个情节
ggplot(test, aes(x = date, y = amount, fill = nr, group = 1)) +
geom_bar(stat = "identity")
一切正常,直到我用下面的代码保存这个图
ggsave(filename="D:/Documents/units_plot.png", width = 4, height = 2)
我不知道应该如何正确设置图像尺寸(应该是 1000x500px)以及如何设置图例的文本大小、轴文本大小。通常我通过 theme() 选项 i ggplot 来执行此操作,但由于某种原因,导出文件中的图例是如此巨大。
解决方案
ggplot 基于图像打印后的物理尺寸计算其尺寸。要获得特定的像素大小,您需要为 DPI(每英寸的像素数)选择一个好的值,并使用它来计算大小:
ggplot(test, aes(x = date, y = amount, fill = nr, group = 1)) +
geom_bar(stat = "identity") +
theme_grey(base_size = 12)
dpi = 96
ggsave(filename="units_plot.png", width = 1000 / dpi, height = 500 / dpi,
dpi = dpi)
如果您选择不同的 DPI 值,则必须测试哪些字体大小适用于该 DPI,而不会使标签太大或太小 - 我认为没有任何办法解决这个问题。
推荐阅读
- bash - 如何将逗号分隔的值放入换行符并在包含冒号之前删除所有 id
- azure - 如何使用 Azure API 管理入站策略中的根 CA 证书验证我的客户端证书?
- javascript - 我想上传 1 个文件并克隆到 3 个文件,如何在 nodejs 中使用 multer 将多个文件大小上传到服务器
- python - 如何在odoo的电子邮件模板中放置自动发送消息的链接
- angular - ng-bootstrap 下拉菜单的方法从角度服务调用
- arrays - 在 Spark Scala Dataframe 中迭代具有动态大小的数组列
- ios - 如何将自定义字体与映射字形一起使用?
- pycharm - PyCharm 导航未显示
- node.js - 使用节点 js 在 SQL Server 数据库中插入具有数据类型图像的图像链接
- c - 如何使这段代码更短、更高效?