У меня есть график, где ось X является фактором, метки которого длинные. Хотя, возможно, это не идеальная визуализация, сейчас я хотел бы просто повернуть эти метки, чтобы они были вертикальными. Я понял эту часть с помощью кода ниже, но, как вы можете видеть, ярлыки не полностью видны.
data(diamonds)
diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut))
q <- qplot(cut,carat,data=diamonds,geom="boxplot")
q + opts(axis.text.x=theme_text(angle=-90))
q + theme(axis.text.x=element_text(angle = -90, hjust = 0))
theme(axis.text.x=element_text(angle = 90, vjust = 0.5))
. Начиная с ggplot2 0.9.3.1 это кажется решением.q + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
ОДИН РАБОТАЮЩИЙ В ТЕЧЕНИЕ.theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))
давали хорошие результатыЧтобы сделать текст на метках галочки полностью видимым и читать в том же направлении, что и метка оси Y, измените последнюю строку на
источник
использование
coord_flip()
В гл. 3.9 из R для Data Science Уикхем и Гролемунд говорят на этот точный вопрос:
источник
Я хотел бы предложить альтернативное решение, в последней версии ggtern требовалось надежное решение, подобное тому, что я собираюсь предложить. , поскольку , с момента появления функции поворота холста.
По сути, вам необходимо определить относительные положения с помощью тригонометрии, построив функцию, которая возвращает
element_text
объект, заданный угол (т.е. градусы) и информацию о расположении (то есть одну из x, y, сверху или справа).Честно говоря, на мой взгляд, я думаю, что должна быть доступна опция 'auto'
ggplot2
в аргументахhjust
and иvjust
, в любом случае, при указании угла, давайте продемонстрируем, как работает выше.Который производит следующее:
источник
rads = (-angle - positions[[ position ]])*pi/180
произведенные лучшие размещения. Обратите внимание на дополнительный знак минус перед углом. В любом случае, спасибо за код :)Пакет ggpubr предлагает ярлык, который делает правильные вещи по умолчанию (текст выравнивания по правому краю, текстовое поле по центру по галочке ):
Создано 2018-11-06 пакетом представлением (v0.2.1)
Найдено с помощью GitHub для поиска соответствующих имен аргументов: https://github.com/search?l=R&q=element_text+angle+90+vjust+org%3Acran&type=Code
источник
В качестве альтернативы,
ggplot 3.3.0
обеспечиваетguide_axis(n.dodge = 2)
(в качествеguide
аргументаscale_..
или в качествеx
аргументаguides
), чтобы преодолеть проблему избыточного изображения, уклоняя метки по вертикали. Это работает довольно хорошо в этом случае:источник
Чтобы получить читаемые метки x без дополнительных зависимостей, вы хотите использовать:
Это поворачивает метки на 90 ° против часовой стрелки и выравнивает их вертикально на конце (
hjust = 1
) и их центрах по горизонтали с соответствующей меткой (vjust = 0.5
).Полный пример:
Обратите внимание, что параметры вертикального / горизонтального выравнивания
vjust
/hjust
ofelement_text
относятся к тексту. Поэтомуvjust
отвечает за горизонтальное выравнивание.Без
vjust = 0.5
этого будет выглядеть так:Без
hjust = 1
этого будет выглядеть так:Если по какой-либо (проводной) причине вы хотите повернуть метки на 90 ° по часовой стрелке (чтобы их можно было прочитать слева), вам необходимо использовать:
q + theme(axis.text.x = element_text(angle = -90, vjust = 0.5, hjust = -1))
.Все это уже обсуждалось в комментариях к этому ответу, но я возвращаюсь к этому вопросу так часто, что хочу получить ответ, который я могу просто скопировать, не читая комментарии.
источник
Альтернативой
coord_flip()
является использованиеggstance
пакета. Преимущество состоит в том, что это облегчает объединение графиков с другими типами графиков, и вы можете, что еще важнее, установить фиксированные коэффициенты масштабирования для вашей системы координат .Создано 2020-03-11 пакетом представлением (v0.3.0)
источник