-1

osmnxを使用してgraph_from_pointを作成しています。そのグラフをPNG画像に保存したいのですが、保存されたPNGファイルの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)
4

1 に答える 1

0

networkx と matplotlib の関係がよくわかりません。

OSMnx/NetworkX と matplotlib の間に固有の関係はありません。NetworkX MultiDiGraph オブジェクトには、transData などの matplotlib 軸属性がありません。OSMnxのドキュメントを読むことをお勧めします。OSMnx は、matplotlibを介してグラフをプロットし、図と軸を返すことができます。その後、必要に応じてこの軸を操作および操作できます。

于 2019-02-08T14:42:34.043 に答える