使用reorder_within后在轴标签中加粗项目

如何解决使用reorder_within后在轴标签中加粗项目

我正在使用R中tidytext包中的reorder_within()函数绘制不同频率的图。一个类似的例子来自here

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type='checkBox' class='bcheck' data-x='admin'>
<input type='checkBox' class='bcheck' data-x='nts'>
<input type='checkBox' class='bcheck' data-x='chat'>
<button>CLICK</button>

输出图像为:

我该如何在每个方面加粗单个项目?例如,如果我想在每个构面的轴标签上加粗David名称,我该怎么做?

解决方法

与@tamtam链接的答案中的解决方案相反,这是一种需要最少开销的解决方案:您可以使用ggtext::element_markdown将ggplot中的任何文本解释为markdown。只需添加axis.text.y = ggtext::element_markdown(),所有形式为"**Name**"的变量名都以粗体显示:

library(ggplot2)
library(dplyr)
library(tidytext)

test_data <- data.frame(
  decade = rep(c("1950","1960","1970","1980"),each = 3),name = rep(c("Max","**David**","Susan"),4),n = c(2,1,4,5,3,7,10,3)
)


test_data %>%
  group_by(decade) %>%
  ungroup %>%
  mutate(decade = as.factor(decade),name = reorder_within(name,n,decade)) %>%
  ggplot(aes(name,fill = decade)) +
  geom_col(show.legend = FALSE) +
  facet_wrap(~decade,scales = "free_y") +
  coord_flip() +
  scale_x_reordered() +
  scale_y_continuous(expand = c(0,0)) +
  labs(y = "Number of babies per decade",x = NULL,title = "What were the most common baby names in each decade?",subtitle = "Via US Social Security Administration") +
  theme(axis.text.y = ggtext::element_markdown())

reprex package(v0.3.0)于2020-09-22创建

,

除了@starja的出色示例外,您还可以尝试使用glue包在名称上建立条件,然后使用该函数进行排序。关键是将标签的格式设置为element_markdown()中的ggtext。这里的代码使用了整个数据:

library(tidyverse)
library(ggtext)
library(glue)
library(babynames)
#Data
top_names <- babynames %>%
  filter(year >= 1950,year < 1990) %>%
  mutate(decade = (year %/% 10) * 10) %>%
  group_by(decade) %>%
  count(name,wt = n,sort = TRUE) %>%
  ungroup
#Plot
top_names %>%
  group_by(decade) %>%
  top_n(15) %>%
  ungroup %>%
  mutate(name=ifelse(name=='David',glue("**{name}**"),name)) %>%
  mutate(decade = as.factor(decade),subtitle = "Via US Social Security Administration")+
  theme(axis.text.y = element_markdown())

输出:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?