2013-02-25 4 views
5

Когда вы обычно используете factor для кодирования цвета/размера в ggplot2 в R? Пример:когда использовать factor() при построении графика с ggplot в R?

ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=gear)) 

в сравнении:

ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=factor(gear))) 

является общим правилом, чтобы использовать factor, когда переменная используется для определения формы/размер/цвет является дискретным, а не непрерывно? Или есть другое использование factor в этом контексте? Похоже, что первая команда может быть сделана как вторая с правой легендой, даже без factor. Благодарю.

редактировать: Я получаю это когда я использую colour=gear: enter image description here

+4

Да, это зависит от того, что вы хотите показать. Если вы склонны передавать чувство градации, вы используете непрерывную переменную, но если вы хотите показывать группы, вы можете сделать ставку на конверсию. –

+1

Используйте «фактор», если у вас есть числовые переменные, которые фактически представляют категории. – Andrie

ответ

6

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

ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=gear)) 

enter image description here

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

Когда gearsбудет рассматриваться как фактор, цвета выбраны, чтобы быть различимы:

ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=factor(gear))) 

enter image description here

Обратите внимание, что если вы не получаете градиентной сюжет, когда не используется factor, вы должны попробовать перейти на более новую версию ggplot2.

+0

Как вы получаете свой первый сюжет? Я не получаю градиентную легенду, когда я просто использую 'color = gear'. – user248237dfsf

+0

@ user248237: Я разместил свой код над каждой фигурой - я считаю, что он точно такой же, как у вас. Возможно ли, что в вашем фрейме данных (версия R?) «Механизм» уже является фактором? Что вы получаете от 'class (mtcars $ gear)'? –

+0

Я получаю 'class (mtcars $ gear) [1]" numeric ", когда я печатаю то, что вы написали. Я использую RStudio. – user248237dfsf

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