сгруппированный барплот: порядок оси x и постоянная ширина полосы, в случае отсутствия уровней
Вот мой сценарий (пример, вдохновленныйВот и используяreorder
вариант изВот):
library(ggplot2)
Animals <- read.table(
header=TRUE, text='Category Reason Species
1 Decline Genuine 24
2 Improved Genuine 16
3 Improved Misclassified 85
4 Decline Misclassified 41
5 Decline Taxonomic 2
6 Improved Taxonomic 7
7 Decline Unclear 10
8 Improved Unclear 25
9 Improved Bla 10
10 Decline Hello 30')
fig <- ggplot(Animals, aes(x=reorder(Animals$Reason, -Animals$Species), y=Species, fill = Category)) +
geom_bar(stat="identity", position = "dodge")
Это дает следующий выходной график:
Я бы хотел заказать барплоттолько при условии «Отклонить», и все «Улучшенные» не будут вставлены в середину. Вот что я хотел бы получить (после некоторого редактирования SVG):
Таким образом, теперь все условие «Отклонение» сортируется, и после него следует условие «Улучшено». Кроме того, в идеале все стержни должны иметь одинаковую ширину, даже если условие не представлено для значения (например, «Bla» не имеет значения «Отклонить»).
Любая идея о том, как я мог бы сделать это без необходимости играть с редакторами SVG? Большое спасибо!