Skip to main content
 首页 » 编程设计

python之将 csv 数据绘制为 map之Python

2025年05月04日22fff_TT

我必须读取代表 map 的 csv 文件。 我的 csv 是这样的(数据):

"","x","y","sim1","sim2","sim3","sim4","sim5","sim6","sim7","sim8","sim9","sim10","sim11","sim12" 
"1",181180,333740,5.56588745117188,6.29487752914429,7.4835410118103,5.75873327255249,6.62183284759521,5.81478500366211,4.85671949386597,5.90418815612793,6.32611751556396,6.99649047851562,6.52076387405396,5.68944215774536 
"2",181140,333700,6.36264753341675,6.5217604637146,6.16843748092651,5.55328798294067,7.00429201126099,6.43625402450562,6.17744159698486,6.72836923599243,6.38574266433716,6.81451606750488,6.68060827255249,6.14339065551758 
"3",181180,333700,6.16541910171509,6.44704437255859,7.51744651794434,5.46270132064819,6.8890323638916,6.46842670440674,6.07698059082031,6.2140531539917,6.43774271011353,6.21923875808716,6.43355655670166,5.90692138671875 

第一列显示我有多少对 x/y 坐标,x 和 y 是经度/纬度,作为模拟 #N 的属性值。

使用 d3,我可以快速读取此 csv 并将其显示为它所代表的 map :

d3.csv("https://dl.dropboxusercontent.com/u/11442023/Geostatistic/sim100.csv", function(error, data) { 
if (error) {  //If error is not null, something went wrong. 
    console.log("Error loading sim100 data."); 
    console.log(error);  //Log the error. 
} else {      //If no error, the file loaded correctly. Yay! 
    console.log("Data sim100 loaded successfully!"); 
    //Include other code to execute after successful file load here 
    simulationDataset = data; 
    scaleX = d3.scale.linear().domain([d3.min(simulationDataset, function(d) {return d.x;}), d3.max(simulationDataset, function(d) { return d.x; })]); 
    scaleY = d3.scale.linear().domain([d3.min(simulationDataset, function(d) {return d.y;}), d3.max(simulationDataset, function(d) { return d.y; })]); 
    } 
}); 

我已经将其保存在一个 numpy 数组中:

np.loadtxt("Data/sim.csv", delimiter=',', usecols=range(1,4), skiprows=1) 

在 Python 中,我不知道如何实现这一点。此外,除了为模拟绘制 map 外,我还必须保存这是我必须做的 future 工作的矩阵。但是,由于 x 和 y 是经度/纬度,我没有像 (0,0) (0,1) (0,2) 这样的点,即像一个简单的矩阵。但是我不知道是否有像我上面提到的那样来扩展域。

我想找到最大/最小纬度和经度来定义我的矩阵大小,他们进行了一些微积分以将每对经度/纬度拟合到这个结构中。但这对我来说似乎不是一个好方法,并且看到了我所看到的 Python 可以做的一切,我想存在更好的解决方案。

我最想知道是否有一个“神奇”函数可以将这些数据保存在一个有意义的矩阵中(对所有经度/纬度索引进行转换并将该索引处的值保存在该矩阵中)或者,如果我必须按我的想法行事,请找到最小值/最大值并处理翻译。

提前致谢。

请您参考如下方法:

您应该能够相当轻松地编写一些东西来解析该 CSV 并将数据输入到一个 numpy 数组中。 Numpy 是科学数据计算最常用的模块之一。从那里,您可以使用 matplotlib 或 mayavi 来提供数据的图形表示。