2012-11-07 121 views
0

我在道路網絡等的matplotlib中創建了一些GIS風格的地塊,所以我使用LineCollection來存儲和表示相應的所有道路和顏色。這是工作的罰款,我基於色彩的一個標準,道路和以下地圖:matplotlib集合線寬映射?

from matplotlib.colors import ListedColormap,BoundaryNorm 
from matplotlib.collections import LineCollection 

cmap = ListedColormap(['grey','blue','green','yellow','orange','red','black']) 
norm = BoundaryNorm([0,0.5,0.75,0.9,0.95,1.0,1.5,100],cmap.N) 

roads = LineCollection(road_segments, array=ratios, cmap=cmap, norm=norm) 
axes.add_collection(roads) 

這工作得很好,但我真的想有一個類似的方式,以彩色地圖定義線寬 - 從0.5到每種顏色5個

有沒有人知道這樣做的一個聰明的方法?

回答

0

該關鍵字爲linewidths

import matplotlib.pyplot as plt 
from matplotlib.collections import LineCollection 

axes = plt.axes() 

roads = LineCollection([ 
         [[0, 0], [1, 1]], 
         [[0, 1], [1, 0]] 
         ], 
         colors=['black', 'red'], 
         linewidths=[3, 8], 
         ) 
axes.add_collection(roads) 

plt.show() 

HTH