1
Если у меня есть фактор для моей переменной у и попытаться использовать geom_hline
в facet_grid
я получаю сообщение об ошибке:горизонтальная линия; Ось у как фактор: ggplot2
p <- qplot(mpg, factor(sample(c("a", "b", "c", "d"), nrow(mtcars), T)), data=mtcars, facets = vs ~ am)
hline.data <- data.frame(z = factor(c("a", "b", "c", "d")), vs = c(0,0,1,1), am = c(0,1,0,1))
p + geom_hline(aes(yintercept = z), hline.data)
## > p + geom_hline(aes(yintercept = z), hline.data)
## Error in x - from[1] : non-numeric argument to binary operator
Почему я получаю сообщение об ошибке, и как я могу это исправить?
PS Я могу это исправить, повернув его как числовой в:
hline.data <- data.frame(z = factor(c("a", "b", "c", "d")), vs = c(0,0,1,1), am = c(0,1,0,1))
qplot(mpg, as.numeric(factor(sample(c("a", "b", "c", "d"), nrow(mtcars), T))), data=mtcars, facets = vs ~ am) +
geom_hline(aes(yintercept = as.numeric(z)), hline.data)
Но я теряю нужные ярлыки фактора.
Это работает, но чувствует, как взломать. Это ошибка в ggplot2 или, возможно, что-то запрашивается на его сайте GitHub? –
@TylerRinker Трудно сказать, является ли это ошибкой, поскольку в документации не указано, что принимает 'yintercept'. Нет разумной системы координат, в которой характерный фактор имеет смысл. Ось оси масштабируется численно, даже если она помечена символами. –
Правда, но в некотором роде это похоже на то, как ведет себя точка. Я бы ожидал, что это поведение будет расширено здесь. Я проделал это как продолжение списка рассылки ggplot. –