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

How to change the axis values from numeric to character in R?

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

我想做的只是改变值,你可以在图片中看到的那些精确值 (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 以来),你们对我真的很有帮助,很有帮助,这是我在 Whosebug 中的第一个问题。非常感谢

亲切的问候,

弗莱迪

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

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

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

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()})

下面是一个标签取逻辑值的例子,我们设置了不同的刻度线:

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()})