如何在R中将轴值从数字更改为字符?

时间:2017-03-08 04:03:37

标签: r character numerical

我在尝试更改两个轴的值时遇到了一些问题。

我想做的只是改变值,你可以在图片(20,0,-20,-40)中看到这些字符的确切值:“20°N”,“EQ”,“20 °S和40°S(x轴相同)。

lat<-seq(-51.25,31.25,by=2.5)
lon<-seq(238.75,331.25,by=2.5)
data<-nc_open("aprecFeb2012.nc")
dataZG<-ncvar_get(data,"aprod")
dataz<-dataZG[96:133,16:49]

filled.contour(lon, lat, dataz,zlim =c(-500:500),
plot.axes={axis(1);axis(2);map('world2', add=TRUE);grid()})

注意:您可以下载我在此示例中使用的netcdf文件here

Picture

P.D。:请使用相同的功能(filled.contour)

我只是想说这个很快: 在过去两年(自从我使用R以来),你们对我一直非常有帮助,所以这是我在stackoverflow中的第一个问题。非常感谢你

亲切的问候,

弗雷迪

1 个答案:

答案 0 :(得分:0)

可以通过filled.contour的{​​{1}}参数更改x和y轴的注释。请参阅?axis帮助文件,该文件告诉我们atlabels可以为每个axis边定义,其中1 =底部(x轴),2 =左(y轴) ,3 =以上,4 =对。

at表示要绘制刻度线的点。 labels是指定是否使用(数字)注释的逻辑值,或者是要放置在刻度点中的标签的字符向量。

在StackOverflow中提问时,指示必须加载哪些包才能运行代码,这也很有帮助。我包含了我必须安装的库来回答这个问题:)

library(ncdf4)
library(graphics)
library(maps)

labels设置为所需的字符向量。标签矢量的长度应与at中指定的刻度线数相匹配。我只会在你定义了字符向量的y轴上做,并将x轴注释留给你。

filled.contour(lon, lat, dataz, zlim =c(-500:500),
           plot.axes={axis(1); axis(2, at=seq(-40,20,20), labels=c("20°S", "40°S","EQ", "20°N")); map('world2', add=TRUE);grid()})

enter image description here

以下是标签采用逻辑值的示例,我们设置了不同的刻度标记:

filled.contour(lon, lat, dataz, zlim =c(-500:500),
           plot.axes={axis(1); axis(2, at=seq(-40,20,10), labels=TRUE); map('world2', add=TRUE);grid()})

filled.contour(lon, lat, dataz, zlim =c(-500:500),
           plot.axes={axis(1); axis(2, at=seq(-40,20,10), labels=FALSE); map('world2', add=TRUE);grid()})