2015-05-13 9 views
-1

Я пытаюсь сначала переупорядочить уровни фактора, а затем изменить ярлыки, чтобы при построении графика в ggplot2 я получал надписи в некоторых единицах.superscript в ggplot2 как метка при заказе фактора

Не все этикетки требуют надписей. Я пробовал использовать «выражение» в своем коде, но я не могу заставить его работать.

Я видел, что используется «bquote», но я не могу заставить это работать в аргументе «factor».

Может ли кто-нибудь предложить решение?

Я могу предоставить данные, но не думаю, что это требуется.

t$trait <- factor(t$trait, levels=c("yield", "grains/m2", "TGW", "HI", "spikelets/spike","grain_area", "height"), labels=c("Yield \n (t DM/ha)", expression(Grains m^"2"), "TGW", "HI", "Spikelets spike^-1","Grain area \n mm^2", "Height \n (cm)")) 

ответ

0

Вы, вероятно, следует указать labels и не levels. Однако определение функции factor содержит as.character(labels). Невозможно иметь expression s как уровни.

Однако, вы можете сделать что-то вроде этого:

x <- c("a", "b") 
y <- 1:2 
DF <- data.frame(x, y) 
library(ggplot2) 
ggplot(DF, aes(x, y)) + 
    geom_point() + 
    scale_x_discrete(breaks = c("a", "b"), 
        labels = c(expression(x[1]), expression(x[2]))) 

Это выдает предупреждение, но производит сюжет без проблем.

resulting plot

+0

Roland, большое спасибо за ваше предложение. Я удалил «метки» изнутри «фактора», и вместо этого я использую «scale_x_discrete» следующим образом: – user2978586

+0

scale_x_discrete (labels = c («Выход» \ n (t DM/ha) », выражение (Зерна m^«2»), «TGW», «HI», выражение (колоски колокола^"- 1"), выражение (площадь зерна \ n мм "^ 2"), "Высота \ n (см)")) – user2978586

+0

Это создает ошибки без рисования графика. Могу ли я использовать выражение несколько раз для конкретных меток таким образом? – user2978586