首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在中以EPS格式保存ggplot以进行编辑--文本问题

在中以EPS格式保存ggplot以进行编辑--文本问题
EN

Stack Overflow用户
提问于 2019-06-11 21:00:59
回答 2查看 3.8K关注 0票数 5

问题

我想从R中保存一个ggplot,以便在Adobe (AI)中编辑。我可以用EPSPS格式用ggsave保存这个情节,但是这个情节总是会给文本带来一些阴影。有没有办法在R或中解决这个问题?

例如,我的绘图如下所示:

但是,当我将它导入AI时,它看起来像这样(粉色阴影围绕文本):

代码

代码语言:javascript
复制
# 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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-12 14:10:09

更新11/03/2020

我现在确保在生成任何情节之前,我已经将字体设置为'Arial‘。可以使用extrafont包设置自定义字体。

代码语言:javascript
复制
library(extrafont)

font_import(path=font_path, prompt=FALSE)

fonts() # check to see which fonts are available

choose_font("Arial")

# plotting code ...

其中,font_path指定到包含所需“字体”的目录的路径,例如arial.ttf

旧部分解

我为这个可怜的问题道歉。在将图形文本导入之后,后面的粉红色阴影表明该字体无法被AI识别。如果你从AI导出这个地块,这个阴影就消失了。

要向AI添加字体,可以尝试按照以下说明操作:

向添加新字体

来源

  • 创建一个新的人工智能文档(文件>新文档)
  • 开始输入新文档。
  • dafont.com下载橙汁字体。
  • 提取文件(橙汁2.0.ttf)
  • 安装TrueType文件(右击>安装)。
  • 字体现在应该在AI中被识别。

以检查使用了哪种字体ggplot:

代码语言:javascript
复制
> 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.
'''
票数 4
EN

Stack Overflow用户

发布于 2019-06-11 21:55:00

由于您已经在使用ggplot2,所以可以将最后一行更改为

代码语言:javascript
复制
ggsave("myplot.eps",plot)

代码语言:javascript
复制
setEPS()
postscript("whatever.eps")
#Plot Code

关于其他可能的解决方案,请按下面的链接:

用R将图形导出到.eps文件

若要确保导出可通过图形编辑器编辑的文档,请执行以下操作。您需要选择一个主题(包括字体等)用于图形编辑器支持的绘图。

有关GGPLOT2主题文档的链接如下:

https://ggplot2.tidyverse.org/reference/theme.html

https://www.rdocumentation.org/packages/ggplot2/versions/2.1.0/topics/theme

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56551609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档