本帖最后由 XiaoQ 于 2016-2-26 09:49 编辑
数据样式
# 读取数据
ana_data_all=read.csv("C:\\Users\\Administrator\\Desktop\\测试数据.csv",header= T)
# 根据均值建立有序列,这个是为了作图好看下面
mean_data=sort(tapply(ana_data_all$show,ana_data_all$one, mean),decreasing=T)
name_data_one=names(mean_data)
ana_data_all$one1=ordered(ana_data_all$one,levels=name_data_one)#建立有序因素序列
num_data_one=length(name_data_one)
# 开始作图测试1
stripchart(show~one,data=ana_data_all[ana_data_all$kind=="peo",],vertical=T,col="Blue",main="test")
# 添加第二种方法的点
points(show~one,data=ana_data_all[ana_data_all$kind=="free",],col="red")
#可以发现横坐标显示不完全,而且图形看上去并没什么可看的东西。
#下面将尝试将值较高的one放在最左面,这样排序。这时就要用到上面得到的one1
# 开始作图
stripchart(show~one1,data=ana_data_all[ana_data_all$kind=="peo",],vertical=T,col="Blue",xaxt="n",main="test")
# 添加第二种方法的点
points(show~one1,data=ana_data_all[ana_data_all$kind=="free",],col="red")
#第二种添加点的方法,加入add的参数即可
stripchart(show~one1,data=ana_data_all[ana_data_all$kind=="free",],vertical=T,col="red",xaxt="n",main="test",add=T)
#以上两种做法都是在原图添加,如果添加的点超出了原图的范围,点就不会在图里面,那么就是对原图的范围进行设定
stripchart(show~one1,data=ana_data_all[ana_data_all$kind=="peo",],vertical=T,col="Blue",xaxt="n",main="test",ylim=c(min(ana_data_all$show),max(ana_data_all$show)))
#添加横坐标刻度名称,将名称分为两行,名称间隔输入
axis(1,at=seq(1,num_data_one,2),labels =name_data_one[seq(1,num_data_one,2)],padj = 2)
axis(1,at=seq(2,num_data_one,2),labels =name_data_one[seq(2,num_data_one,2)])
#添加图例
legend(19,350000,paste("peo"),pch=0,col="Blue",bty="n",text.col="black")
legend(19,330000,paste("free"),pch=1,col="red",bty="n",text.col="black")
#有什么更好的方法欢迎交流。本人第一次用stripchart()作图。
|