如何在 ggplot 和 lemon 中不自动对我的 y 轴条形图进行排序
How to not automatically sort my y axis bar plot in ggplot & lemon
我正在尝试按具有不同值的物种显示数据,具体取决于字母组。我发现显示数据的最佳方式是将分类数据放在 y 轴上并在 x 轴上显示 Total_Observed。 Lemon 允许我使用不同的 y 轴标签。不幸的是,图表按我的 y 轴标签排序,而不是按原样使用我的数据,它按最丰富的物种从最丰富的物种排序。有什么建议吗?
使用库:dplyr、ggplot2、lemon
我的数据:
|Letter |Species | Total_Observed|
|:------|:------------------------|--------------:|
|A |Yellowtail snapper | 155|
|A |Sharksucker | 119|
|A |Tomtate | 116|
|A |Mutton snapper | 104|
|A |Little tunny | 96|
|B |Vermilion snapper | 1655|
|B |Red snapper | 1168|
|B |Gray triggerfish | 689|
|B |Tomtate | 477|
|B |Red porgy | 253|
|C |Red snapper | 391|
|C |Vermilion snapper | 114|
|C |Lane snapper | 95|
|C |Atlantic sharpnose shark | 86|
|C |Tomtate | 73|
|D |Lane snapper | 627|
|D |Red grouper | 476|
|D |White grunt | 335|
|D |Gray snapper | 102|
|D |Sand perch | 50|
|E |White grunt | 515|
|E |Red grouper | 426|
|E |Red snapper | 150|
|E |Black sea bass | 142|
|E |Lane snapper | 88|
|E |Gag | 88|
|F |Yellowtail snapper | 385|
|F |White grunt | 105|
|F |Gray snapper | 88|
|F |Mutton snapper | 82|
|F |Lane snapper | 59|
然后我 运行 我的代码 ggplot/lemon
ggplot(test,aes(y=Species,x=Total_Observed))+geom_histogram(stat='identity')+facet_wrap(.~test$Letter,scales='free_y')
我的图表打印如下:
Johan Rosa 的分享博客(https://juliasilge.com/blog/reorder-within/) 的回答:解决方案是使用库(tidytext)。使用函数 reorder_within 和 scale_x_reordered.
更正后的代码:
test %>% mutate(Species=reorder_within(Species,Total_Observed,Letter)) %>% ggplot(aes(Species,Total_Observed))+geom_histogram(stat='identity')+facet_wrap(~Letter,scales='free_y')+coord_flip()+scale_x_reordered()
现在将生成正确排序的图表
我正在尝试按具有不同值的物种显示数据,具体取决于字母组。我发现显示数据的最佳方式是将分类数据放在 y 轴上并在 x 轴上显示 Total_Observed。 Lemon 允许我使用不同的 y 轴标签。不幸的是,图表按我的 y 轴标签排序,而不是按原样使用我的数据,它按最丰富的物种从最丰富的物种排序。有什么建议吗?
使用库:dplyr、ggplot2、lemon
我的数据:
|Letter |Species | Total_Observed|
|:------|:------------------------|--------------:|
|A |Yellowtail snapper | 155|
|A |Sharksucker | 119|
|A |Tomtate | 116|
|A |Mutton snapper | 104|
|A |Little tunny | 96|
|B |Vermilion snapper | 1655|
|B |Red snapper | 1168|
|B |Gray triggerfish | 689|
|B |Tomtate | 477|
|B |Red porgy | 253|
|C |Red snapper | 391|
|C |Vermilion snapper | 114|
|C |Lane snapper | 95|
|C |Atlantic sharpnose shark | 86|
|C |Tomtate | 73|
|D |Lane snapper | 627|
|D |Red grouper | 476|
|D |White grunt | 335|
|D |Gray snapper | 102|
|D |Sand perch | 50|
|E |White grunt | 515|
|E |Red grouper | 426|
|E |Red snapper | 150|
|E |Black sea bass | 142|
|E |Lane snapper | 88|
|E |Gag | 88|
|F |Yellowtail snapper | 385|
|F |White grunt | 105|
|F |Gray snapper | 88|
|F |Mutton snapper | 82|
|F |Lane snapper | 59|
然后我 运行 我的代码 ggplot/lemon
ggplot(test,aes(y=Species,x=Total_Observed))+geom_histogram(stat='identity')+facet_wrap(.~test$Letter,scales='free_y')
我的图表打印如下:
Johan Rosa 的分享博客(https://juliasilge.com/blog/reorder-within/) 的回答:解决方案是使用库(tidytext)。使用函数 reorder_within 和 scale_x_reordered.
更正后的代码:
test %>% mutate(Species=reorder_within(Species,Total_Observed,Letter)) %>% ggplot(aes(Species,Total_Observed))+geom_histogram(stat='identity')+facet_wrap(~Letter,scales='free_y')+coord_flip()+scale_x_reordered()
现在将生成正确排序的图表