我有一个 geoJson 文件。一个 JSON 类型文件,它有 93k 行的许多点(387k)坐标。我想知道是否可以使用 python 将所有这些线快速绘制成一个图形,因为我需要稍后为不同的时间间隔创建许多热图。
目前我正在使用 matplotlib
import matplotlib
matplotlib.use('Agg')
from matplotlib import pyplot as plt
# draw road network
# roadSegs structure: {road_segment1:[[line1_x, line1_y],...],...}
figure, ax = plt.subplots(1, 1)
ax.set_xlim(x_min - 100.0, x_max + 100.0)
ax.set_ylim(y_min - 100.0, y_max + 100.0)
for feature_id, lines in roadSegs.iteritems():
for line in lines:
ax.plot(line[0], line[1])
plt.savefig('road.png')
Run Code Online (Sandbox Code Playgroud)
我需要使用非交互式后端,因为此代码将位于服务器中。我尝试只绘制一张地图。已经花了15分钟,还没有结束。有什么想法可以提高速度吗?我知道 matplotlib 不是为大型数据集可视化而设计的,但我的数据集小于 1M 点。有什么想法可以提高其性能吗?如果推荐其他库,我应该使用哪一个?至少它必须让我渲染线条并改变图形大小。
这可能听起来很愚蠢.当我在python中覆盖dict时:
class idict(dict):
def __init__ (self, *args, **kwargs):
self._store = dict(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
然后我用
a = {1:2, 2:3}
b=idict(a)
print b._store == a
Run Code Online (Sandbox Code Playgroud)
给 True
我不知道为什么dict(dict)得到同样的字典.在python中的dict有任何方法处理这个吗?我不确定我是否以正确的方式做到了.
另一个问题是:
如果我知道我将获得父类实例(如dict),我想在此实例中添加/更改方法.我通常从父类创建子类并获取子类实例.这似乎是内存效率低下的,因为父实例已经存在.
我搜索后的一种方法是直接在父类中添加/更改方法(例如parent_class.method = new_method),然后获取父类的实例.我不确定这在OOP方面是否正确.