holoviz / geoviews

Simple, concise geographical visualization in Python
http://geoviews.org
BSD 3-Clause "New" or "Revised" License
577 stars 75 forks source link

Creating arrowheads with graphs #290

Open Dr-Irv opened 5 years ago

Dr-Irv commented 5 years ago

I have a graph and would like arrowheads to appear. They work fine with Holoviews, but not Geoviews.

Versions used: pandas version 0.23.4 holoviews version 1.11.2 geoviews version 1.6.2 bokeh version 1.0.4

import pandas as pd
import geoviews as gv
import holoviews as hv
from bokeh.sampledata.airport_routes import airports, routes
import bokeh

gv.extension('bokeh')
print("pandas version ", pd.__version__)
print("holoviews version ", hv.__version__)
print("geoviews version ", gv.__version__)
print("bokeh version ", bokeh.__version__)
nodes_of_interest = ['MIA', 'MCO', 'TPA', 'ATL']
links_of_interest = routes[routes.Source.isin(nodes_of_interest) & routes.Destination.isin(nodes_of_interest)][['Source','Destination']]
airports_of_interest = airports[airports.IATA.isin(nodes_of_interest)][['IATA','Longitude','Latitude','AirportID']]

Following code produces no arrowheads:

%%opts Graph [width=400 height=400]
pts = gv.Points(airports_of_interest, ['Longitude','Latitude'])
nodes = gv.Nodes(pts, ['Longitude','Latitude','IATA'],['AirportID'])
graph = gv.Graph((links_of_interest, nodes), ['Source','Destination'])
graph.options(directed=True, arrowhead_length=0.05)

image

Following code using HoloViews does produce arrowheads:

%%opts Graph [width=400 height=400]
pts = hv.Points(airports_of_interest, ['Longitude','Latitude'])
nodes = hv.Nodes(pts, ['Longitude','Latitude','IATA'], ['AirportID'])
graph = hv.Graph((links_of_interest, nodes), ['Source','Destination'])
graph.options(directed=True, arrowhead_length=0.05)

image

So how does one get arrowheads on graphs in GeoViews?

aboomer07 commented 1 year ago

Hi, this library is so cool, thank you for maintaining it! I am having a similar issue in geoviews 1.9.5, is there an update on the progress of this issue?