r - 以 EPS 格式保存 ggplot 以在 Adobe Illustrator 中进行编辑——文本问题
问题描述
问题
我想ggplot
从 R 中保存一个以便在 Adobe Illustrator (AI) 中进行编辑。我可以将绘图保存为EPS
或PS
格式ggsave
,但绘图总是在文本周围带来一些阴影。有没有办法在 R 或 Adobe Illustrator 中解决这个问题?
例如,我的情节如下所示:
但是,当我将它导入 AI 时,它看起来像这样(文本周围的粉红色阴影):
代码
# Saving a plot for editing in Adobe Illustrator.
library(ggplot2) # for plotting
library(cowplot) # for ggsave
# Generate an example scatter plot.
# From: http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html
options(scipen=999) # turn-off scientific notation like 1e+48
theme_set(theme_gray())
data("midwest", package = "ggplot2")
plot <- ggplot(midwest, aes(x=area, y=poptotal)) +
geom_point(aes(col=state, size=popdensity)) +
geom_smooth(method="loess", se=F) +
xlim(c(0, 0.1)) +
ylim(c(0, 500000)) +
labs(subtitle="Area Vs Population",
y="Population",
x="Area",
title="Scatterplot",
caption = "Source: midwest")
plot
# Save the plot as .eps with ggsave.
file <- "myplot.eps"
ggsave("myplot.jpg",plot)
解决方案
2020 年 11 月 3 日更新
我现在确保在生成任何绘图之前已将字体设置为“Arial”。您可以使用包设置自定义字体extrafont
。
library(extrafont)
font_import(path=font_path, prompt=FALSE)
fonts() # check to see which fonts are available
choose_font("Arial")
# plotting code ...
Wherefont_path
指定包含所需“字体”的目录的路径,例如arial.ttf
.
旧的部分解决方案
我为这个可怜的问题道歉。导入 Adobe Illustrator 后,绘图文本后面的粉红色阴影表示该字体未被 AI 识别。如果您从 AI 导出绘图,则此阴影将消失。
要将字体添加到 AI,您可以尝试按照以下说明进行操作:
向 Adobe Illustrator 添加新字体
- 创建一个新的 AI 文档(文件 > 新建)
- 开始输入新文档。
- 从dafont.com下载橙汁字体。
- 解压文件(橙汁2.0.ttf)
- 安装 TrueType 文件(右键单击 > 安装)。
- 现在应该在 AI 中识别字体。
要检查 ggplot 正在使用哪种字体:
> mytheme <- ggplot2::theme_gray()
> mytheme$family
[1] "" # The default is sans.
# To check which sans font is being used:
> windowsFonts()
$`serif`
[1] "TT Times New Roman"
$sans
[1] "TT Arial"
$mono
[1] "TT Courier New"
# My PC's default sans font is TT Arial.
'''
推荐阅读
- android - 如何在没有支持库的情况下将 MaterialToolbar 设置为 ActionBar
- python - 按特定键对列表中的字典项进行分组
- python - 如何连接到已经创建的 Chalice 项目和 AWS Lambda 环境
- javascript - 如何使用 javascript 和 node.js - mysql 并且不使用 php 将 HTML 表单数据提交到 MySql 数据库表中?
- kubernetes - 删除并重新安装 kubelet 和 kubectl
- android - ReadableNativeArray.getString ClassCastException React Native
- react-native - React Navigation 5 中的 EXPO 问题,为什么返回顶部按钮“<--”现在总是默认在右侧?
- python - 为 PyPi 打包 Python 应用程序时如何修复 ModuleNotFoundError
- node.js - Nodejs中的Path.join跨平台要求
- javascript - 简单的云功能复制文档时出错