2017-01-10 52 views
2

我想說明墨爾本到地圖上的其他澳大利亞城市的航班密度。理想的情況下,我們會有箭頭(將城市與其他城市連接在一起)顯示每天從一個城市到另一個城市的航班數量。我們有這個工作的圖書館嗎?用Python連接地圖上的位置與數據說明

非常感謝您的投入。

親切的問候, HH

+0

非現場資源請求在SO上是無關緊要的。但看看[Graphviz](http://www.graphviz.org)。有幾個Python模塊,例如[graphviz](http://graphviz.readthedocs.io/en/latest/manual.html),但是對於簡單的事情來說,很容易直接生成DOT文件,而無需使用3rd-派對模塊。 –

回答

0

如果你有數據節點和邊的形式(基本上是圖DB),那麼你可以使用以下鏈接:

Drawing a graph with NetworkX on a Basemap

可以實現自己的目標1)示出的箭頭/通過使用有向圖和2)厚度通過使用權重的向內/向外指向的航班

0

感謝您輸入的計數方向。我決定使用簡單的箭頭功能以及下面的一些餅圖。爲了產生這種地圖,我採用: - 底圖 - plt.arrow - plt.text - plt.plot - 由托馬斯·勒科克開發定製的餅圖幫手(http://www.geophysique.be/2010/11/26/matplotlib-basemap-tutorial-06-real-case-pie-charts/

棘手的部分是爲整齊佈局指定箭頭的起點和終點。願意根據要求提供更多細節。再次

def draw_pie(ax,ratios, X, Y, size): 
N = len(ratios) 
xy = [] 
start = 0. 
colors=['#08298A','none'] 
for ratio in ratios: 
    x = [0] + np.cos(np.linspace(2*math.pi*start,2*math.pi*(start+ratio), 30)).tolist() 
    y = [0] + np.sin(np.linspace(2*math.pi*start,2*math.pi*(start+ratio), 30)).tolist() 
    xy1 = zip(x,y) 
    xy.append(xy1) 
    start += ratio 
plt.rcParams['patch.linewidth'] = .7 
plt.rcParams['patch.edgecolor']='#D0C4C1' 
for i, xyi in enumerate(xy): 
    ax.scatter([X],[Y] , marker=(xyi,0), s=size, facecolor=colors[i],zorder=5,alpha=.6, lw=.7) 

enter image description here

感謝:下面我舉餅圖幫手。乾杯。

HH