R 简单散点图:X轴上的变量问题

R 简单散点图:X轴上的变量问题,r,scatter-plot,R,Scatter Plot,我试着画一个简单的散点图:X轴代表学生毕业学期,Y轴代表他们的平均成绩 下面是我读取数据的方式(Graduated08是文件名): 上面,201302代表2013年春季学期,201202代表2012年春季学期。基本上,命名约定是这样的:前四位数字表示年份,后两位数字表示该年份的特定术语(01冬季术语、02春季术语、03夏季术语、04秋季术语) 我用下面的R代码得到了一个简单的散点图 **> plot (x= Graduated08$Grad_Term, + y= Graduat

我试着画一个简单的散点图:X轴代表学生毕业学期,Y轴代表他们的平均成绩

下面是我读取数据的方式(Graduated08是文件名):

上面,201302代表2013年春季学期,201202代表2012年春季学期。基本上,命名约定是这样的:前四位数字表示年份,后两位数字表示该年份的特定术语(01冬季术语、02春季术语、03夏季术语、04秋季术语)

我用下面的R代码得到了一个简单的散点图

**> plot (x= Graduated08$Grad_Term,
+       y= Graduated08$GPA
+ )**

然而,我得到了一个与X轴混乱的绘图。Y轴看起来不错,但X轴(梯度项)搞乱了。图中没有将201201、201202、201203和201204分开,而是将所有这些术语组合成一个标记为“201200”的变量。其他年份也发生了同样的事情(仅参见201300、201400等)。我想把一年中的四个学期都分开画出来。

我想你希望
Grad\u Term
列成为
字符
类。但是,R将此列视为非
字符
。使用以下代码强制将
梯度项
设置为
字符

Graduated08 <- read.csv(file="200804_Graduated.csv",
                        header=TRUE,
                        colClasses=c("character", "numeric"),
                        na.strings="NA")

# now make your plot and each quarter should be a separate data point

graded08我原则上同意蒂姆的观点。然而,我尝试了这一点,plot()将自动将Grad_项转换为数值

解决此问题的最简单方法是首先关闭自动打印,然后添加自定义x轴值

d<-data.frame(rbind(
  cbind(201302,3.560809),
  cbind(201403,3.013043),
  cbind(201202, 4.000000),
  cbind(201302,3.344286),
  cbind(201204, 3.596993),
  cbind(201401,3.393704)))
names(d)<-c('Grad_Term','GPA')

attach(d)

# this is wrong
plot(Grad_Term,GPA)

# try this:
# turn off axis with xaxt= paramter
plot(Grad_Term,GPA,xaxt='n')

# put in your own, custom x axis
axis(1,at=Grad_Term)

d
str(Graduated08)
的输出是什么?这并不能回答问题,这是关于变量的分组,而不是轴label@alexwhan,据我所知,问题在于“x轴被弄乱了”。然而,为了说明你的观点,R将Grad_项视为一个数字,连续变量…这是正确的做法。这里没有分组问题,除非我们希望Grad_项成为一个因子,它将把绘图上的每个点都变成一个小方框图。@alexwhan:AO的理解是正确的。这是关于X轴的,而不是变量的分组,我正试图把X轴上的所有术语都分离出来。@AO:绘图正是我想要的,但是,我有数千行数据,包括GPA和术语以外的变量,需要读入。因此,我无法像您那样键入所有数据。另外,我的理解是,通过编写您建议的代码,自动绘图将被关闭。只是想确保我不必做任何其他事情来关闭自动绘图,对吗?它不一定是
字符
,任何
渐变项
不同的类都应该适当分组。如果不知道这个病例的具体情况,诊断是不可能的。我以为R是把专栏当作一个因素,但谁知道呢。我的观点是,如果它是一个因素,那应该是好的,而且(我认为)比性格更合适
Graduated08 <- read.csv(file="200804_Graduated.csv",
                        header=TRUE,
                        colClasses=c("character", "numeric"),
                        na.strings="NA")

# now make your plot and each quarter should be a separate data point
d<-data.frame(rbind(
  cbind(201302,3.560809),
  cbind(201403,3.013043),
  cbind(201202, 4.000000),
  cbind(201302,3.344286),
  cbind(201204, 3.596993),
  cbind(201401,3.393704)))
names(d)<-c('Grad_Term','GPA')

attach(d)

# this is wrong
plot(Grad_Term,GPA)

# try this:
# turn off axis with xaxt= paramter
plot(Grad_Term,GPA,xaxt='n')

# put in your own, custom x axis
axis(1,at=Grad_Term)