我正在按主题按顺序绘制热门单词及其贡献的图表。为了通过贡献来对每个方面的单词进行排序,我需要创建一个可变顺序,然后用新标签替换。
我的代码如下:
library(ggplot2)
dat = data.frame(topic = paste('Topic', rep(1:2, each=3)),
term = c('apple', 'orange', 'peach', 'grape', 'fruit', 'mellon'),
order = rep(1:3, 2),
contribution = c(0.01, 0.05, 0.07, 0.02, 0.05, 0.08))
dat %>%
ggplot(aes(x=order, y=contribution, fill=topic))+
geom_bar(stat='identity', width=0.5)+
facet_wrap(~topic, scales = 'free')+
scale_x_continuous(
breaks = dat$order,
labels = dat$term,
expand = c(0,0)
) +
coord_flip()+
theme(legend.position = "none")
令人惊讶的是,我发现我的y轴文本与其他文本有些重叠。有人知道为什么吗?我花了几个小时,但不明白为什么会这样。非常感谢!
答案 0 :(得分:0)
每个订单有多个水果,并且用相同的标签标记两个主题,这是一个问题。 (即“苹果”和“葡萄”),我建议使用library(forcats)
按水果绘制并根据顺序对它们重新排序。这是下面的代码:
library(ggplot2)
library(dplyr)
library(forcats)
dat = data.frame(topic = paste('Topic', rep(1:2, each=3)),
term = c('apple', 'orange', 'peach', 'grape', 'fruit', 'mellon'),
order = rep(1:3, 2),
contribution = c(0.01, 0.05, 0.07, 0.02, 0.05, 0.08))
dat %>%
ggplot(aes(x = fct_reorder(term, order, max), y = contribution, fill = topic)) +
geom_bar(stat = 'identity') +
facet_wrap(~ topic, scales = "free") +
coord_flip()
由reprex package(v0.2.1)于2019-07-01创建