Для выполнения этой пользовательской сортировки вам необходимо реализовать свой собственный Comparator
. По умолчанию метод String.compareTo()
сортирует числа перед символами. Когда 0
в 20some
сравнивается с s
в 3some
, 0
имеет более высокий приоритет сортировки, и поэтому все слово сортируется первым. Что вам нужно сделать, так это: попытайтесь разделить строки на число и часть символа. Это сложная задача, поскольку эти String
s могут состоять из многих из этих частей (или не так?). Вы можете использовать такие алгоритмы, как Alphanum
, которые Муртаза уже показал вам. Если вы хотите реализовать его самостоятельно, вы можете проверить, заканчивается ли числовая часть. Затем проанализируйте его с int
с помощью Integer.parse()
. Сравните int
части, если они существуют в обоих String
s, а затем сравните остальные. Ну, это может быть не самое профессиональное решение, но, как новичок, вы можете попробовать эти вещи сами изучить.
Используйте аргумент expand
в scale_y_continuous
. Подробнее см. ?continuous_scale
.
expand_scale()
(с ggplot2 3.0.0). Здесь вы можете увидеть пример здесь . – aosmith 13 July 2018 в 15:30scale_y_continuous(expand = c(0.1, 0))
, то это трюк! – SlyGrogger 13 July 2018 в 15:35