作者nosense (loiterer)
看板R_Language
标题[问题] ggplot 资料问题
时间Wed Dec 27 21:16:08 2017
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
我有一笔资料,想用ggplot画成时间序列的图
画出来後,分成男女性别再画一次
结果出现 "错误: Aesthetics must be either length 1 or the same as the data "
google之後还是不太清楚原因
[程式范例]:
有四个变数no,sex,time,type type的值只有1跟4
head(data)
no sex time type
12094851 2 2015-10-18 1
12094851 2 2016-04-15 1
12094851 2 2016-07-14 1
12024856 2 2016-01-19 1
:
:
10567401 1 2015-12-20 4
11339563 1 2016-04-03 4
11255465 1 2015-12-12 4
31444461 2 2015-09-03 4
ggplot(data,aes(y=factor(no),x=time))+
geom_point(shape=type,size=1.7,colour=sex)+
geom_line()
画出来是这样
https://i.imgur.com/pOwgrDr.png
data_men<-data[data$sex==1,] 之後把男性的资料分离出来再做一次
ggplot(data=data_men,aes(y=factor(no),x=time))+
geom_point(shape=type)+
geom_line()
错误: Aesthetics must be either length 1 or the same as the data (162): shape
如果把shape移到aes()里面是可以执行 但线的位置会跑掉
ggplot(data=data_men,aes(y=factor(no),x=time,shape=factor(type)))+
geom_point()+
geom_line()
https://i.imgur.com/kJUlJ23.png
想知道错误讯息原因 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.164.162.242
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1514380572.A.765.html
1F:→ andrew43: geom_point()里应该要把shape=type包在aes。 12/28 12:06
2F:→ andrew43: 另外,geom_line()因为会继承ggplot()中的shape,所以 12/28 12:09
3F:→ andrew43: 同shape会画一条线,而不是同factor(no)画一条线 12/28 12:10
4F:→ andrew43: 其实我无法重现你的结果。先更新ggplot2版本看看。 12/28 12:11
5F:→ nosense: 谢谢 我已改用别的方法 12/28 21:28