2015-12-30 3 views
0

В следующем примере (обратите внимание на различия в меток оси Y) Я использую переменную, чтобы заполнить метку оси в ggplot2. Интересно, что ~ производит намного большие пространства, а дополнительные пространства появляются вокруг увеличенного -.R - функция синтаксического разбора не работает должным образом

enter image description here

library(ggplot2) 

#LabelY <- "Miles per Gallon-Car" 
LabelY <- parse(text="Miles~per~Gallon-Car") 

a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + 
     ggtitle("Fuel Efficiency of 32 Cars") + 
     xlab(LabelY) + ylab(LabelY) + 
     theme(text=element_text(size=16)) 
print(a) 

Я использую разобрана, потому что это позволяет мне использовать более сложные примеры, включая atop и греческие буквы.

Есть ли способ использовать синтаксический анализ для импорта сложных строк, а также сохранения желаемого «менее распространенного» внешнего вида содержимого?

+0

Что необходимо предпринять, чтобы убедить вас против Comic Sans шрифта? –

+0

Какие «сложные строки» вы хотите «импортировать»? – Spacedman

+0

@ RomanLuštrik Я на самом деле не использую его, это был самый подходящий MWE, который я мог легко изменить. Мой последний вопрос заключался в том, чтобы заставить работать шрифты, и мне нужно было что-то заметное, демонстрирующее успешное изменение. – EngBIRD

ответ

1

Похоже, что приложенный переносимый термин с backticks позволит вам удерживать дефис вместо того, чтобы превращать его в тире.

Здесь я положил новую переносную версию метки оси на ось x и оставил ось y в качестве оригинала для сравнения.

LabelY <- parse(text="Miles~per~Gallon-Car") 
LabelY2 <- parse(text="Miles~per~`Gallon-Car`") 

ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + 
    ggtitle("Fuel Efficiency of 32 Cars") + 
    xlab(parse(text = LabelY2)) + ylab(LabelY) + 
    theme(text=element_text(size=16)) 

enter image description here

Как указано в комментариях, вы можете также использовать фигурные скобки и одной комбинации кавычки вокруг дефис термина, чтобы получить тот же эффект.

parse(text="Miles~per~{'Gallon-Car'}")

+0

Спасибо! Однако для потомков я получил тот же эффект от 'parse (text =" Miles ~ per Gallol {'-'} Car ")', никакой реальной разницы. Еще раз спасибо! – EngBIRD

+0

@EngBIRD Интересно. Я получаю ошибку синтаксического анализа, если попытаюсь, поэтому подумал, что, должно быть, неправильно понял ваш предыдущий комментарий. Я использую R 3.2.3, но не знаю, если это разница. – aosmith

+0

Извините, я думаю, что у меня была опечатка, когда я скопировал и вставил вашу последнюю строчку. Это должны были быть пары фигурных скобок на котировках, а не только один открытый закрытый набор, поскольку это кавычки, которые моя внешняя вытащенная ценность пыталась разобрать. Не помните наверняка, потому что я пошел с вашим более простым конденсированным подходом с клещами. – EngBIRD

Смежные вопросы