R语言 带有重复标签的ggplot轴自定义顺序

f8rj6qna  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(59)
set.seed(357)
x <- data.frame(name = sample(letters, 10), val = runif(10), stringsAsFactors = F)
x[c(2,6),"name"] <- c("k","k")
ggplot(x, aes(x = name, y = val)) + theme_bw() + geom_bar(stat = "identity")

字符串
我如何以与x$name相同的顺序绘制轴?(是的,k是重复的,我希望它在图中显示为这样的轴:c k g f o k s v t q)
过去我常常这样做:

x$name <- factor(x$name, levels = x$name[order(x$val)], ordered = T)


由于以下原因,它不再工作:http://r.789695.n4.nabble.com/factors-with-non-unique-quot-duplicated-quot-levels-have-been-deprecated-since-2009-are-more-depreca-td4721481.html
这不是:ggplot: order of factors with duplicate levels的重复,他的数据结构完全不同。
另外,我尝试在x_scale_discrete中设置限制。不起作用。

rhfm7lfc

rhfm7lfc1#

试试这个...

x$name2 <- 1:nrow(x)
ggplot(x, aes(x = factor(name2), y = val)) + theme_bw() + geom_bar(stat = "identity") + 
             scale_x_discrete(labels=x$name)

字符串

ggazkfy8

ggazkfy82#

实际上,只需添加以下设置xlab(x$name)

ggplot(x, aes(x = name, y = val)) + theme_bw() + geom_bar(stat = "identity") + xlab(x$name)

字符串

相关问题