我正在使用 osmnx 创建一个 graph_from_point。我想将该图保存为 PNG 图像,但创建了一个补充文件,在保存的 PNG 文件中为我提供了节点的 lat/lng 坐标以及它们的 PIXEL 坐标。
本教程:https ://matplotlib.org/users/transforms_tutorial.html建议应该能够“从您的数据转换到您的显示坐标系”(我知道有一个潜在的显示与保存 DPI 问题)这似乎是我需要的,但如果我尝试使用 transData,我会收到以下错误。
G = ox.graph_from_point(map_query, distance=map_distance, network_type=map_network_type, simplify=True)
list(G.nodes.data())
# {'y': 51.5025637, 'x': 0.1111431, 'osmid': 95944704}
print type(G.transData)
AttributeError: 'MultiDiGraph' object has no attribute 'transData'
这是正确的方法,但我引用了错误的对象?或者这是无效的?我不确定networkx和matplotlib之间的关系。我的最终目标是:
{'y': 51.5025637, 'x': 0.1111431, 'osmid': 95944704, 'pixel' : (23, 467)}
像素是对通过以下方式创建的已保存文件的引用:
ox.plot_graph(G, save=True, file_format='png', filename='example', fig_height=my_fig_height, dpi=my_dpi)