Я хотел бы проиллюстрировать плотность рейсов из Мельбурна в другие города Австралии на карте. В идеале у нас должны быть стрелки (соединяющие город с остальными), а их толстые цифры показывают количество рейсов в день из одного города в другие. У нас есть библиотека для этой работы?

Большое спасибо заранее за ваш вклад.

С наилучшими пожеланиями, HH

2
Tom 10 Янв 2017 в 10:19

3 ответа

Лучший ответ

Если у вас есть данные в виде узлов и ребер (в основном это БД графа), то вы можете использовать следующую ссылку:

Рисование графика с помощью NetworkX на базовой карте

Вы можете достичь своей цели: 1) показывать стрелки / направления, используя ориентированный график, и 2) толщину, используя веса в качестве количества направленных внутрь / наружу направлений.

0
Community 23 Май 2017 в 12:01

Диаграммы Сэнки, использующие python, представляются следующими.

http://matplotlib.org/api/sankey_api.html

Надеюсь это поможет :)

0
Gauthier Feuillen 10 Янв 2017 в 07:29

Большое спасибо за ваш вклад. Я решил пойти с простой функцией стрелки с некоторыми круговыми диаграммами, как показано ниже. Для создания этой карты я нанял: - Базовая карта - 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

0
Tom 31 Янв 2017 в 00:57