Skip to content

Commit

Permalink
Merge pull request #4 from mrahnis/dev
Browse files Browse the repository at this point in the history
Make padding data extents a little more organized.
  • Loading branch information
mrahnis committed Oct 31, 2018
2 parents 846e6bb + 8b23897 commit b10a8be
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 13 deletions.
8 changes: 3 additions & 5 deletions surficial/cli/plan.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import surficial as srf
from surficial.tools import defaults, messages
from surficial.tools.io import read_geometries, check_crs, load_style
from surficial.tools.plotting import cols_to_linecollection, df_extents
from surficial.tools.plotting import cols_to_linecollection, df_extents, pad_extents
from adjustText import adjust_text


Expand Down Expand Up @@ -103,11 +103,9 @@ def plan(ctx, alignment, point_layers, style, label, show_nodes):
handles.append(edge_collection)

extents = df_extents(vertices, xcol='x', ycol='y')
padx = (extents.maxx - extents.minx)*0.05
pady = (extents.maxy - extents.miny)*0.05
lims = pad_extents(extents, pad=0.05)
ax.set(aspect=1,
xlim=(extents.minx - padx, extents.maxx + padx),
ylim=(extents.miny - pady, extents.maxy + pady),
xlim=(lims.minx, lims.maxx), ylim=(lims.miny, lims.maxy),
xlabel='Easting ({})'.format(unit.lower()),
ylabel='Northing ({})'.format(unit.lower()))

Expand Down
8 changes: 3 additions & 5 deletions surficial/cli/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import surficial as srf
from surficial.tools import defaults, messages
from surficial.tools.io import read_geometries, check_crs, load_style
from surficial.tools.plotting import cols_to_linecollection, df_extents
from surficial.tools.plotting import cols_to_linecollection, df_extents, pad_extents


@click.command()
Expand Down Expand Up @@ -152,11 +152,9 @@ def profile(ctx, alignment, surface, point_layers, style,
handles.append(points)

extents = df_extents(vertices, xcol='path_m', ycol='z')
padx = (extents.maxx - extents.minx)*0.05
pady = (extents.maxy - extents.miny)*0.05
lims = pad_extents(extents, pad=0.05)
ax.set(aspect=exaggeration,
xlim=(extents.minx - padx, extents.maxx + padx),
ylim=(extents.miny - pady, extents.maxy + pady),
xlim=(lims.minx, lims.maxx), ylim=(lims.miny, lims.maxy),
xlabel='Distance ({})'.format(unit.lower()),
ylabel='Elevation ({0}), {1}x v.e.'.format(unit.lower(), exaggeration))
if invert:
Expand Down
28 changes: 25 additions & 3 deletions surficial/tools/plotting.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,37 @@
from collections import namedtuple
from matplotlib.collections import LineCollection


Extents = namedtuple('Extents', ['minx', 'miny', 'maxx', 'maxy'])


def df_extents(df, xcol='x', ycol='y'):
from collections import namedtuple
"""Return 2D coordinate Extents from DataFrame columns
Extents = namedtuple('Extents', ['minx', 'miny', 'maxx', 'maxy'])
"""
extents = Extents(df[xcol].min(),
df[ycol].min(),
df[xcol].max(),
df[ycol].max())

extents = Extents(df[xcol].min(), df[ycol].min(), df[xcol].max(), df[ycol].max())
return extents


def pad_extents(extents, pad=0.05):
"""Pad an Extents by a factor
"""
padx = (extents.maxx - extents.minx)*0.05
pady = (extents.maxy - extents.miny)*0.05

result = Extents(extents.minx - padx,
extents.miny - pady,
extents.maxx + padx,
extents.maxy + pady)

return result


def cols_to_linecollection(df, xcol='x', ycol='y', style=None):
"""Return a matplotlib LineCollection given two pandas DataFrame columns
Expand Down

0 comments on commit b10a8be

Please sign in to comment.