我在尝试更改两个轴的值时遇到了一些问题。
我想做的只是改变值,你可以在图片(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
P.D。:请使用相同的功能(filled.contour)
我只是想说这个很快: 在过去两年(自从我使用R以来),你们对我一直非常有帮助,所以这是我在stackoverflow中的第一个问题。非常感谢你
亲切的问候,弗雷迪
答案 0 :(得分:0)
可以通过filled.contour
的{{1}}参数更改x和y轴的注释。请参阅?axis
帮助文件,该文件告诉我们at
和labels
可以为每个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()})
以下是标签采用逻辑值的示例,我们设置了不同的刻度标记:
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()})