获取networkX MultiDiGraph中的节点显示(像素)坐标(由OSMNX生成)

2024-04-25 06:59:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用osmnx从\u点创建一个图\u。我想将该图形保存到PNG图像中,但创建了一个补充文件,提供节点的纬度/纬度坐标以及保存的PNG文件中节点的像素坐标。你知道吗

本教程: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)

Tags: 文件truemap节点pngmatplotlibtype错误
1条回答
网友
1楼 · 发布于 2024-04-25 06:59:14

I am unsure of the relationship between networkx and matplotlib.

OSMnx/NetworkX和matplotlib之间没有内在的关系。NetworkX MultiDiGraph对象没有matplotlib轴属性,例如transData。我建议你读OSMnx documentation。OSMnx可以通过matplotlib绘制图形,并将图形和轴返回给您。然后可以根据需要操纵和使用该轴。你知道吗

相关问题 更多 >