使用ggplot2绘制错误

时间:2016-08-23 05:34:57

标签: r ggplot2 point

我有三个变量的数据,我现在正试图用ggplot2绘制其中两个。

library(ggplot2)
x=1:50
y=x^2
z=rep(c("p","sp","n","sn","nt"),each=10)
mydata=as.data.frame(cbind(x,y,z))
ggplot(mydata, aes(x=x, y=y)) + geom_point()

根据数据,该图应为曲线。但是,当我运行代码时,我得到下面的数字,这是没有意义的。代码中有错误吗?非常感谢。 enter image description here

1 个答案:

答案 0 :(得分:1)

使用cbind创建矩阵时,它会强制使用最常见的类型,在本例中为character。当您致电as.data.frame.matrix时,它会默认创建factors,根据factor的增加级别为您提供此异常排序。要使用的正确函数是data.frame,其中包含数据列的多个参数。

library(ggplot2)
x=1:50
y=x^2
z=rep(c("p","sp","n","sn","nt"),each=10)
mydata= data.frame(x,y,z)
ggplot(mydata, aes(x=x, y=y)) + geom_line()

请查看str(data.frame(x,y,z))而不是str(as.data.frame(cbind(x,y,z)),并注意强制从整数和数字模式中考虑因素。