【问题标题】:R - Making ggplot look good for 2-color printing?R - 让 ggplot 看起来适合 2 色打印?
【发布时间】:2015-07-10 21:38:40
【问题描述】:

我制作了大量图表以在科学期刊上发表,因此我倾向于使用 R 中的基本 plot 工具集,它可以生成简单的图形,看起来很专业,采用 2 色格式。但有时我想要一些更高级的功能,比如ggplot 提供的功能。

如何生成ggplot 图形与 R 的基本图形功能的“外观和感觉”,否则将以两种颜色格式清晰打印?

【问题讨论】:

标签: r graphics plot colors ggplot2


【解决方案1】:

为了完全控制,您可以根据ggplot2 提供的各种图形参数创建一个“主题”功能以应用于您的绘图。

下面的函数并不详尽,但它对基本的 ggplot 主题进行了许多细微的更改。所有参数都可以轻松修改。例如,更改字体系列(此处为“Helvetica”)。或者使用plot.titlevjust 参数上下移动标题。

myTheme <- function() {
theme(panel.border = element_blank(),
    panel.grid.minor = element_line(colour ='white'),
    panel.grid.major = element_line(colour = 'white'),
    panel.background = element_rect(fill = '#ededed', color = '#ededed'),
    plot.background = element_rect(fill = 'white', color = 'white'),
    plot.margin = unit(c(2.5, 2.5, 2.5, 2.5), 'cm'),
    plot.title = element_text(family = 'Helvetica', face ='bold', vjust=4, size=12, colour='#292929'),
    axis.title.y = element_text(family = 'Helvetica', size = 12, vjust = 1.5, face='bold', colour='#292929'),
    axis.title.x = element_text(family = 'Helvetica', size = 12, vjust = -1.5, face='bold',colour='#292929'),
    axis.text.y = element_text(family = 'Helvetica', size = 11, colour = '#292929'),
    axis.text.x = element_text(family='Helvetica', size = 11, colour='#292929'),
    axis.ticks.y = element_line(colour = 'white'),
    axis.ticks.x = element_line(colour = 'white'))
}

我个人更喜欢在情节边缘留出更多空间。为此,您需要:

install.packages('grid')
library(grid)

这个包可以让你调整plot.margin参数。

使用这个功能非常简单。您只需将其添加到 ggplot 代码的末尾即可。如下。

ggplot(mtcars, aes(disp, mpg)) + 
geom_point() +
ggtitle('Mtcars Plot') +
myTheme()

正如上面 cmets 中正确提到的,将选项 scale_fill_grey()scale_colour_grey() 添加到您的 ggplot 代码中,可以让您控制灰色阴影。

有了这个主题,你的情节将像下面的那样最小,并且与基本情节保持一致。要更详细地了解如何控制主题的元素,请参见此处:ggplot 2 theme control

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2015-12-22
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2016-01-06
    相关资源
    最近更新 更多