【发布时间】:2017-10-04 12:46:38
【问题描述】:
我有一个经度/纬度数据集,如下所示:
id,spp,lon,lat
1a,sp1,1,9
1b,sp1,3,11
1c,sp1,6,12
2a,sp2,1,9
2b,sp2,1,10
2c,sp2,3,10
2d,sp2,4,11
2e,sp2,5,12
2f,sp2,6,12
3a,sp3,4,13
3b,sp3,5,11
3c,sp3,8,8
4a,sp4,4,12
4b,sp4,6,11
4c,sp4,7,8
5a,sp5,8,8
5b,sp5,7,6
5c,sp5,8,2
6a,sp6,8,8
6b,sp6,7,5
6c,sp6,8,3
根据这些数据,我想生成一个这样的网格:
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 1 2 0 0 0 0
0 0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 2 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 3 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
它使用变量“spp”作为分类(分组)因子,给出网格每个单元格中的数据记录数。
从这个网格中,我想创建一个热图,叠加在一张地理地图上,这样我就得到了如下图所示的结果。
我可以看到how to plot a heatmap on a Matplotlib/Basemap,但我不知道如何从点数据生成网格。此外,重要的是我能够选择网格大小,以便可以评估几种不同的分辨率。我想我想要的可以通过 Numpy meshgrid 或 Scipy griddata 来实现,但我无法进一步了解如何使用它们。
任何提示、想法、建议将不胜感激。
【问题讨论】:
-
这是一个需求转储,而不是一个特定的编程问题。 SO只适用于后者。前者要花钱。请尝试自行解决此问题,当您对无法开始工作的一段代码有特定问题时,请联系 SO。
-
无法真正理解这种苛刻的意义。有很多个问题没有“一段不起作用的代码”——而且他们都得到了礼貌的回答。就我自己而言,这些年来我问了很多提供代码的问题,但是这一次我什至无法设计出任何可行的东西,所以添加三四个是毫无意义的,如果不是嘲笑的话代码行只是为了假设我做了一些事情。无论如何,我不是要一个“现成的答案”,只是为了一些提示和技巧。但我相信其他更有礼貌的 SO 用户会提供有用的建议。祝你好运!
-
问题更多的是这里没有真正的问题描述。这确实是一项任务。我不会说您通常需要提供任何代码,但提供问题描述的逻辑通常会自动导致代码问题。如果您坚持How to Ask,则需要通过说明您尝试解决任务的内容来明确问题。这将带你到像网格网格这样的东西。现在如果你说你不了解它们,那就太笼统了,所以你需要尝试使用它们。这将导致代码,并且问题中将需要该代码。
-
注意一个重要的区别。如果有人要求以前从未被要求过的东西,那么实际问题就很清楚了,因为还没有任何答案。在这种情况下,人们很乐意提供答案,因为对很多人来说知道如何解决这个任务很有用。这些是您在寻找解决方案时通常会遇到的问题。你在这里问的只是网格坐标的一般问题的一个非常特殊的情况。顺便说一下,它独立于 matplotlib 或可视化。所以你不能指望有人来做你的任务。
-
那些cmets的想法通常是为了帮助你写一个更好的问题,可以回答。从我们这边来看,确实有很大一部分理想主义,试图只对 SO 提出好的和有用的问题。为此目的还有其他机制,即以“过于宽泛”或“离题”的方式结束问题。最终,审查队列将决定其信仰。最后一句话:不要把这些看成个人的,不要带着情绪去看待它。如果您对任何事情有疑问或想听到不同的意见,您可以在Meta Stack Overflow提问。
标签: python numpy matplotlib