r - ggplot 标签中的两个字体

标签 r ggplot2 font-face

我正在尝试为 y 标签创建一个具有两种字体的条形图(不要混淆:由于 coord_flip() 它被称为 x)。 但是,我在互联网上没有找到任何解决方案。

这可能吗?

到目前为止我已经得到了这个。

library(ggplot2)

labs <- paste(rep("1st", 40), rep("2nd", 40), rep("3rd", 40))
labs <- strsplit(labs, " ")

v1 <- ggplot(data.frame(x = 1:40, y = 1:40), aes(x,y)) + 
  geom_bar(stat = "identity", fill = "grey50") + 
  coord_flip() + 
  scale_x_discrete(labels = paste(sapply(labs, "[[", 1), 
                                  .(bold(.(sapply(labs, "[[", 2)))),
                                  sapply(labs, "[[", 3)), 
                   breaks = 1:40)
v1

我想成为所有ylabs中黑体字的第二。 然而,我得到了这个:enter image description here

刻度标签应如下所示([=====] 表示图中的条形):

第一第二第三[==================================]

第一第二第三[==============================]

第一第二第三[==========================]

...

最佳答案

最小示例

您必须定义一个表达式

library(ggplot2)

all.data <- data.frame(group=c('a','b'),count=c(5,8))

ggplot(data=all.data, aes(group, count)) + 
  geom_bar(stat = "identity") + 
  scale_x_discrete(label=c( expression(paste("xxx",bold("foo"))), expression(paste("yyy",bold("bar")))  ))

enter image description here

使用变量的示例

stackoverflow 上的一篇文章让我走上了正确的道路: Use expression with a variable r

labs <- paste(rep("1st", 40), rep("2nd", 40), rep("3rd", 40))
labs <- strsplit(labs, " ")

# create a vector of expressions
# everything in .() is evaluated and ~ forms an expression
plot.labs <- bquote( .(labs[[1]][1]) ~ bold(.(labs[[1]][2])) ~ .(labs[[1]][3]))

# produce a list of expressions
plot.labs.apply <- lapply(labs, function(x) {plot.labs <- bquote( .(x[1]) ~ bold(.(x[2])) ~ .(x[3]))})

# was it done correctly?
class(plot.labs.apply[[2]])

# i used a smaller data frame to not overload the plot
ggplot(data.frame(x = c('a','b'), y = c(40,25)), aes(x,y)) + 
    geom_bar(stat = "identity", fill = "grey50") + 
    coord_flip() + 
    scale_x_discrete(label = c(plot.labs.apply) )

enter image description here

关于r - ggplot 标签中的两个字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36889065/

相关文章:

r - ggplot2:删除一些图例标题

html - 使用@font-face

css - IE 10 不加载字体

r - Shiny 的标签$样式特定模态对话框元素

r - 在嵌套数据框的列上实现 map()

r - 如何将多个 ggplots 与常见的 x 和 y 标签以及常见的图例组合在单页上?

CSS @font-face 不适用于 Firefox,但适用于 Chrome 和 IE

r - R 中的数据透视表不均匀(长度列)

r - bindEvent 似乎消除了对输入的依赖

r - 将侧面添加到具有多个变量值的点图中