我正在寻找一种方法来修改ggplot中的字体类型.目前,我很乐意简单地将字体更改为"courier"字体系列,但最终我的目标是调用一个自定义字体模板——对于后一点的任何输入都将不胜感激.

我做了一些家庭作业(job),查看了以下帖子和文章:

这可能是因为我对ggplot2还是一个毫无希望的业余爱好者,但我甚至无法将图表字体切换到courier.有什么帮助吗?我已经在下面列出了相关图表的数据,以及代码,希望这一切都很容易理解.

推荐答案

以最少的麻烦解决了我的问题.这是一个分两步走的解决方案,如果不听从回应的成员的建议,我是不可能达成的.

为了更改ggplot文本默认值,我修改了Brandon提到的代码:

http://johndunavent.com/combined-line-and-bar-chart-ggplot2

其中John Dunavent创建了一个函数theme_min,可以对其进行编辑,以提供ggplot的默认选项,包括使用Windows字体命令从Windows导入的字体.我对他的代码的改编如下:

theme_min = function (size=10, font=NA, face='plain', 
    panelColor=backgroundColor, axisColor='#999999', 
    gridColor=gridLinesColor, textColor='black') 
{
    theme_text = function(...)
        ggplot2::theme_text(family=font, face=face, colour=textColor, 
            size=size, ...)

opts(
    axis.text.x = theme_text(),
    axis.text.y = theme_text(),
    axis.line = theme_blank(),
    axis.ticks = theme_segment(colour=axisColor, size=0.25),
    panel.border = theme_rect(colour=backgroundColor),
    legend.background = theme_blank(),
    legend.key = theme_blank(),
    legend.key.size = unit(1.5, 'lines'),
    legend.text = theme_text(hjust=0),
    legend.title = theme_text(hjust=0),
    panel.background = theme_rect(fill=panelColor, colour=NA),
    panel.grid.major = theme_line(colour=gridColor, size=0.33),
    panel.grid.minor = theme_blank(),
    strip.background = theme_rect(fill=NA, colour=NA),
    strip.text.x = theme_text(hjust=0),
    strip.text.y = theme_text(angle=-90),
    plot.title = theme_text(hjust=0),
    plot.margin = unit(c(0.1, 0.1, 0.1, 0.1), 'lines'))
}

##Create a custom font type. Could be 'F', 'TEST', whatever
windowsFonts(F = windowsFont('Wide Latin'))

##and insert this line of code into the original code I list above: 
+ theme_min(font='F', size=10) 

尴尬的是,在创建绘图之前,没有办法(我发现)一般地修改geom_文本对象的字体设置.不过,詹姆斯的上述解决方案对这一点非常有效.我没有使用标准字体,而是将fontfamily="F"设置为引入我在theme_min()中 Select 的自定义字体,即:

grid.gedit("GRID.text",gp=gpar(fontfamily="F"))

希望这对其他想要修改图形字体的用户有用.

为所有帮助我解决这个问题的人干杯!

R相关问答推荐

如何利用模型函数在格图中添加双曲/指数曲线

我不能在docker中加载sf

使用tidy—select创建一个新的带有mutate的摘要变量

如何根据R中其他列的值有条件地从列中提取数据?

在R中为马赛克图中的每个字段着色

S用事件解决物质平衡问题

根据日期从参考帧中创建不同的帧

R中插入符号训练函数的中心因子和尺度因子预测

用关联字符串替换列名的元素

您是否可以折叠R中的重复行,同时保留基于所选列的值?

R -在先前group_by级别汇总时获取最大大小子组的计数

在带有`R`中的`ggmosaic`的马赛克图中使用图案而不是 colored颜色

如何使用循环从R中的聚合函数创建列,而不会在名称中给出&q;$&q;?

子样本间系数检验的比较

从两个数据帧中,有没有办法计算R中一列的唯一值?

从字符串01JAN2021创建日期

使用显式二元谓词子集化sfc对象时出错

从多行中 Select 最小值

如果y中存在x中的值,则将y行中的多个值复制到相应的x行中

我应该如何解决Raster程序包中未对齐的色条记号?