def plot_all_stops(g, ax=None, scalebar=False): """ Parameters ---------- g: A gtfspy.gtfs.GTFS object ax: matplotlib.Axes object, optional If None, a new figure and an axis is created, otherwise results are plotted on the axis. scalebar: bool, optional Whether to include a scalebar to the plot. Returns ------- ax: matplotlib.Axes """ assert (isinstance(g, GTFS)) lon_min, lon_max, lat_min, lat_max = get_spatial_bounds(g) smopy_map = get_smopy_map(lon_min, lon_max, lat_min, lat_max) if ax is None: fig = plt.figure() ax = fig.add_subplot(111) ax = smopy_map.show_mpl(figsize=None, ax=ax, alpha=0.8) stops = g.stops() lats = numpy.array(stops['lat']) lons = numpy.array(stops['lon']) xs, ys = smopy_map.to_pixels(lats, lons) ax.scatter(xs, ys, color="red", s=10) ax.set_xlim(min(xs), max(xs)) ax.set_ylim(max(ys), min(ys)) return ax
def _get_median_centered_plot_bounds(g): lon_min, lon_max, lat_min, lat_max = get_spatial_bounds(g) lat_median, lon_median = get_median_lat_lon_of_stops(g) lon_diff = max(abs(lon_median - lon_min), abs(lon_median - lon_max)) lat_diff = max(abs(lat_median - lat_min), abs(lat_median - lat_max)) plot_lon_min = lon_median - lon_diff plot_lon_max = lon_median + lon_diff plot_lat_min = lat_median - lat_diff plot_lat_max = lat_median + lat_diff return plot_lon_min, plot_lon_max, plot_lat_min, plot_lat_max
def plot_route_network_from_gtfs(g, ax=None, spatial_bounds=None, map_alpha=0.8, scalebar=True, legend=True, return_smopy_map=False, map_style=None): """ Parameters ---------- g: A gtfspy.gtfs.GTFS object Where to get the data from? ax: matplotlib.Axes object, optional If None, a new figure and an axis is created spatial_bounds: dict, optional with str keys: lon_min, lon_max, lat_min, lat_max return_smopy_map: bool, optional defaulting to false Returns ------- ax: matplotlib.axes.Axes """ assert (isinstance(g, GTFS)) route_shapes = g.get_all_route_shapes() if spatial_bounds is None: spatial_bounds = get_spatial_bounds(g, as_dict=True) if ax is not None: bbox = ax.get_window_extent().transformed( ax.figure.dpi_scale_trans.inverted()) width, height = bbox.width, bbox.height spatial_bounds = _expand_spatial_bounds_to_fit_axes( spatial_bounds, width, height) return plot_as_routes(route_shapes, ax=ax, spatial_bounds=spatial_bounds, map_alpha=map_alpha, plot_scalebar=scalebar, legend=legend, return_smopy_map=return_smopy_map, map_style=map_style)
def plot_route_network_from_gtfs(g, ax=None, spatial_bounds=None, map_alpha=0.8, scalebar=True, legend=True, return_smopy_map=False): """ Parameters ---------- g: A gtfspy.gtfs.GTFS object Where to get the data from? ax: matplotlib.Axes object, optional If None, a new figure and an axis is created spatial_bounds: dict, optional with str keys: lon_min, lon_max, lat_min, lat_max return_smopy_map: bool, optional defaulting to false Returns ------- ax: matplotlib.Axes """ assert (isinstance(g, GTFS)) route_shapes = g.get_all_route_shapes() if spatial_bounds is None: spatial_bounds = get_spatial_bounds(g, as_dict=True) plot_as_routes(route_shapes, spatial_bounds=spatial_bounds, map_alpha=0.8, scalebar=True, legend=True, return_smopy_map=False)