在R中使用ggplot打印时,何时使用因子()?

在R中使用ggplot打印时,何时使用因子()?,r,ggplot2,R,Ggplot2,您通常何时使用因子对R中ggplot2中的变量进行颜色/大小编码?例如: ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=gear)) 与: ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=factor(gear))) 当用于确定形状/大小/颜色的变量是离散的,而不是连续的时,是否使用系数的一般规则?或者在这种情况下是否还有另一种使用因子的方法?似乎第一个命令可以像第二个命

您通常何时使用
因子
对R中ggplot2中的变量进行颜色/大小编码?例如:

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

ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=factor(gear)))
当用于确定形状/大小/颜色的变量是离散的,而不是连续的时,是否使用
系数
的一般规则?或者在这种情况下是否还有另一种使用
因子的方法?似乎第一个命令可以像第二个命令一样使用正确的图例,即使没有
因子
。谢谢

编辑:当我使用
color=gear
时,我得到这个:
问题不在于传奇,而在于颜色的选择。如果不是因子,则点是相同色调的不同色调:

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

这传达了一个连续的点,因此对于一组单独的可能性来说并不理想。(事实上,一旦你有五六种可能,颜色就很难相互区分了)

gears
被视为一个因素时,颜色被选择为可区分的:

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


请注意,如果在不使用
因子
时未获得渐变图,则应尝试升级到较新版本的
ggplot2

是的,这取决于你想展示什么。如果你倾向于传达一种层次感,你可以使用连续变量,但如果你想显示组,最安全的方法是转换为因子。当你有数字编码的变量实际上代表类别时,使用因子。你如何获得第一个图?当我仅仅使用
color=gear
@user248237时,我没有得到渐变图例:我在每个图形上方张贴了我的代码-我相信它与您的完全相同。在您的数据框(R的版本?)中,
gear
是否可能已经是一个因素?你从
class(mtcars$gear)
中得到了什么?当我键入你写的内容时,我得到了
class(mtcars$gear)[1]“数值”
。我使用的是RStudio。请注意,直到最近ggplot2才开始支持颜色渐变图例,ggplot2版本很可能就是问题所在。0.9.0也有问题。0.9.3(最新版本)未按预期工作。@user248237:请参阅。对于您的R版本,这很可能是最新版本的ggplot。如回答中所述,如果您安装了开发工具,您可以尝试
install.packages(“ggplot2”,type=“source”)