我已经浏览了R中的等高线图页面(包括stackoverflow上的许多提示)但没有成功.这是我的轮廓数据,包括添加卢旺达地图(数据包括经度,纬度和降雨的14个值为x,y和z):
Lon Lat Rain
28.92 -2.47 83.4
29.02 -2.68 144
29.25 -1.67 134.7
29.42 -2.07 174.9
29.55 -1.58 151.5
29.57 -2.48 224.1
29.6 -1.5 254.3
29.72 -2.18 173.9
30.03 -1.95 154.8
30.05 -1.6 152.2
30.13 -1.97 126.2
30.33 -1.3 98.5
30.45 -1.81 145.5
30.5 -2.15 151.3
Run Code Online (Sandbox Code Playgroud)
这是我从stackoverflow尝试的代码:
datr <- read.table("Apr0130precip.txt",header=TRUE,sep=",")
x <- datr$x
y <- datr$y
z <- datr$z
require(akima)
fld <- interp(x,y,z)
par(mar=c(5,5,1,1))
filled.contour(fld)
Run Code Online (Sandbox Code Playgroud)
插值fails.help将不胜感激.
这是我几个月前提出的一个问题,我仍在努力寻求解决方案.我的代码并排给我一个底图和一个等高线图(但是打印到文件只给出了轮廓图),但是我希望它们叠加.最好的解决方案是https://gist.github.com/oblakeobjet/7546272,但这并没有说明如何引入数据,当你从头开始在线学习时很难.如果没有非常善良的人,我希望解决方案很容易,因为改变一行代码并且有人可以提供帮助.我的代码
#!/usr/bin/python
# vim: set fileencoding=UTF8
import numpy as np
import pandas as pd
from matplotlib.mlab import griddata
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
#fig = plt.figure(figsize=(10,8)) #when uncommented draws map with colorbar but no contours
#prepare a basemap
m = Basemap(projection = 'merc',llcrnrlon = 21, llcrnrlat = -18, urcrnrlon = 34, urcrnrlat = -8, resolution='h')
# draw country outlines.
m.drawcountries(linewidth=0.5, linestyle='solid', color='k', antialiased=1, ax=None, zorder=None)
m.drawmapboundary(fill_color = 'white')
m.fillcontinents(color='coral',lake_color='blue')
parallels = np.arange(-18, -8, 2.)
m.drawparallels(np.arange(-18, …Run Code Online (Sandbox Code Playgroud) 这是我的数据:
Lon Lat Z Z2 pos
32.6 -13.6 41 9 CHIP
27.1 -16.9 43 12 CHOM
32.7 -10.2 46 14 ISOK
24.2 -13.6 33 13 KABO
28.5 -14.4 43 11 KABW
28.1 -12.6 33 16 KAFI
27.9 -15.8 46 13 KAFU
24.8 -14.8 44 9 KAOM
31.1 -10.2 35 14 KASA
25.9 -13.5 24 8 KASE
29.1 -9.8 10 13 KAWA
25.8 -17.8 39 11 LIVI
33.2 -12.3 44 8 LUND
28.3 -15.4 46 12 LUSA
27.6 -16.1 47 9 …Run Code Online (Sandbox Code Playgroud) 我正在用八度音绘制轮廓,并使用命令saveas(gcf,'rainzam.pdf')我得到输出正常,但我只是想知道为什么我得到以下警告:
warning: print.m: epstool binary is not available.
Some output formats are not available.
warning: print.m: fig2dev binary is not available.
Some output formats are not available.
Run Code Online (Sandbox Code Playgroud)
这并不严重,但如果有办法让它们消失,我将不胜感激.
我在 Perl 脚本中进行了替换,但我似乎无法正常工作。我在文本文件中有一个字符串,其格式为:
T+30H
Run Code Online (Sandbox Code Playgroud)
字符串 T+30H 必须写入许多文件,并且必须在文件之间更改。它是两位数,有时是三位数。首先我定义变量:
my $wrffcr=qr{T+\d+H};
Run Code Online (Sandbox Code Playgroud)
读取包含字符串的文件后,我有以下替换命令(从文件捕获开始)
@scrptlines=<$NCLSCRPT>;
foreach $scrptlines (@scrptlines) {
$scrptlines =~ s/$wrffcr/T+$fcrange2[$jj]H/g;
}
Run Code Online (Sandbox Code Playgroud)
$fcrange2[$jj] 已定义,我通过在上述 4 行代码之前打印其值来确认其值。
print "$fcrange2[$jj]\n";
Run Code Online (Sandbox Code Playgroud)
当我运行我的脚本时,这个特定的替换没有任何变化。我怀疑这与我定义要替换的字符串的方式有关。我将不胜感激任何帮助。齐洛尔·蒙巴
对于提出一个已经多次全面解决的问题,我深表歉意.我的问题是,我试图复制粘贴,因为是SO帖子中的例子,但是没有为我工作.我的数据格式为"dd mm YYYY HH mm ss value value".我想把它读作一个pandas数据帧,第一列作为日期字符串.以下是我在SO帖子中尝试的示例:1.第一个示例数据
01 05 2013 00 00 00 26.4 16.5
02 05 2013 00 00 00 25.9 17.7
03 05 2013 00 00 00 26.6 17.4
......
Run Code Online (Sandbox Code Playgroud)
添加HH mm ss的零只是为了完全符合示例.
其次是进口包裹
从datetime import datetime导入pandas作为pd import os来自cStringIO import StringIO
fname = os.path.expanduser('./ temps0.txt')
现在我尝试了三个例子
a)来自SO帖子:
使用python中的pandas,将年月日和小时的日期分解在单独的列中
def dt_parse(date_string):dt = pd.datetime.strptime(date_string,'%d%m%Y')return dt df = pd.read_csv(fname,header = None,index_col ='datetime',parse_dates = {'datetime ':[0,1,2,4,5,6]},date_parser = lambda x:pd.datetime.strptime(x,'%d%m%Y'))date_parser = dt_pasre)
这是错误的一部分
File "/home/zmumba/anaconda/lib/python2.7/site-packages/pandas/io/parsers.py",
line 1763, in _try_convert_dates
colnames.append(str(columns[c]))
IndexError: list …Run Code Online (Sandbox Code Playgroud)