2013-12-11 35 views
1

感谢来自这个网站的帮助,我现在设法编写了我的代码,将气象站降雨量数据插入到1km网格上,并使用R对其进行绘图。最后一部分代码消除了不需要的数据,然后使用quilt.plot绘图。要绘制的数据(mydf.final)是包含以下标题的值列表:索引,东,北,降雨量和平均降雨量。对这些数据的样本要绘制这样的长相,如果我执行dput:如何使用装箱数据生成R中​​的被子图?

quilt.plot(cbind(mydf.final$easting,mydf.final$northing),mydf.final$rainfall, add.legend=TRUE,nx=599,ny=1209,xlim=c(0,700000),ylim=c(0,1250000)) 

这给了我,我不能发表,因为我的形象:

dput(mydf.final(head, 10)) 

structure(list(easting = c(101000, 101000, 101000, 101000, 101000, 
101000, 101000, 101000, 101000, 101000), northing = c(740000, 
741000, 742000, 743000, 744000, 745000, 746000, 747000, 748000, 
749000), rainfall = c(40.0997151135538, 40.3344163486536, 40.5681562532368, 
40.8009001543464, 41.0326137107226, 41.2632629265481, 41.4928141651644, 
41.721234162219, 41.9484900390941, 42.1745493154662), saar = c(1081.62, 
1081.62, 1081.62, 1081.62, 1081.62, 1078.68, 1078.68, 1078.68, 
1078.68, 1078.68)), .Names = c("easting", "northing", "rainfall", 
"saar"), row.names = 4717:4726, class = "data.frame") 

我可以利用这个绘制数据没有足够的声望点。 Amyway,情节是英国地图,显示不同颜色的降雨量,最大降雨量显示红色和最小蓝色。

虽然这是正常的,我希望做两件事情:

  1. 确保所有的雨量数据被绘制为0或更大。一些降雨数据是负值(例如-1),那么在绘图之前如何将所有负值更改为0?

  2. 而不是使用最小值和最大值之间的颜色范围(蓝色到红色),我想将值设置为这样,例如,蓝色是0mm到5mm,浅蓝色是5mm到10mm,黄色是10mm到20mm ,红色是大于30毫米等等等任何想法,我如何实现这一目标?

+2

'X [X $雨量<0, “降雨”< - 0'探索'cut'? –

回答

0

从罗马的想法偷,但使用findInterval代替:

y<- mydf.final$rainfall # simplify typing 
ycuts <- findInterval(y,c(0,5,10,20,30,max(y))) 
quilt.plot(yourxdata, y , col=c('blue','lightblue','yellow','purple','red')[ycuts], {the rest of your arguments})