ggplot2:反转散点图中y轴上离散类别的顺序

ggplot2: Reversing the order of discrete categories on y-axis in scatterplot

我一直在想办法修改此代码,以便在散点图中架构位于 Y 轴的顶部,而视觉艺术位于 Y 轴的底部。

更新:关于 "duplicate" 错误分类 - 我的观点是,如果有一种优雅的方法可以在 ggplot2 中执行此操作,而不是简单地重新排序数据框中的级别。

ggplot() + geom_point(aes(x = Year, y = Subclass_Name, colour = Subclass_Name, size = Transactions), data = art_data, alpha = 0.7)

注意:线图也回答了类似的问题,但我不能让它适用于散点图:

您可以反转 Subclass_name 变量水平的顺序。

## Some sample data
art_data <- data.frame(Subclass_Name=sample(c("Architecture", "Painting", "Visual Arts"), 100, rep=T),
                  Year=sample(1920:2015, 100, rep=T, prob=sort(rexp(96, 1/8))),
                  Transactions=sample(1:7, 100, rep=T))

## Initial levels
levels(art_data$Subclass_Name)
# [1] "Architecture" "Painting"     "Visual Arts" 

## Reverse the order of Subclass_Name levels
art_data$Subclass_Name <- factor(art_data$Subclass_Name,
                                 levels=rev(levels(art_data$Subclass_Name)))
levels(art_data$Subclass_Name)
# [1] "Visual Arts"  "Painting"     "Architecture"

## Then make the plot
ggplot(art_data, aes(Year, Subclass_Name, color=Subclass_Name, size=Transactions)) +
  geom_point(alpha=0.7) +
  scale_color_discrete(breaks=rev(levels(art_data$Subclass_Name)),
                       labels=rev(levels(art_data$Subclass_Name)))  # reverse labels in legend