Skip to content

Commit

Permalink
Merge pull request #518 from ioam/mplaxis_refactor
Browse files Browse the repository at this point in the history
Refactored matplotlib axis setting for easier reusage
  • Loading branch information
jlstevens committed Feb 29, 2016
2 parents e09c146 + 1db4095 commit e1b33fd
Show file tree
Hide file tree
Showing 12 changed files with 271 additions and 295 deletions.
6 changes: 4 additions & 2 deletions holoviews/plotting/bokeh/element.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,10 @@ def _get_hover_data(self, data, element, empty=False):


def _axes_props(self, plots, subplots, element, ranges):
dims = element.dimensions()
xlabel, ylabel, zlabel = self._axis_labels(element, subplots)
el = element.traverse(lambda x: x, [Element])
el = el[0] if el else element
dims = el.dimensions()
xlabel, ylabel, zlabel = self._get_axis_labels(dims)
if self.invert_axes:
xlabel, ylabel = ylabel, xlabel

Expand Down
18 changes: 8 additions & 10 deletions holoviews/plotting/mpl/chart.py
Original file line number Diff line number Diff line change
Expand Up @@ -792,8 +792,9 @@ def initialize_plot(self, ranges=None):
ranges = self.compute_ranges(self.hmap, key, ranges)
ranges = match_spec(element, ranges)

self.handles['artist'], self.handles['xticks'], xlabel = self._create_bars(axis, element)
return self._finalize_axis(key, ranges=ranges, xticks=self.handles['xticks'], xlabel=xlabel, ylabel=str(vdim))
self.handles['artist'], self.handles['xticks'], xdims = self._create_bars(axis, element)
return self._finalize_axis(key, ranges=ranges, xticks=self.handles['xticks'],
dimensions=[xdims, vdim])


def _finalize_ticks(self, axis, element, xticks, yticks, zticks):
Expand All @@ -803,7 +804,7 @@ def _finalize_ticks(self, axis, element, xticks, yticks, zticks):
yalignments = None
if xticks is not None:
ticks, labels, yalignments = zip(*sorted(xticks, key=lambda x: x[0]))
xticks = [ticks, labels]
xticks = (list(ticks), list(labels))
super(BarPlot, self)._finalize_ticks(axis, element, xticks, yticks, zticks)
if yalignments:
for t, y in zip(axis.get_xticklabels(), yalignments):
Expand All @@ -821,7 +822,7 @@ def _create_bars(self, axis, element):
style_opts, color_groups, sopts = self._compute_styles(element, style_groups)
dims = element.dimensions('key', label=True)
ndims = len(dims)
xlabel = ' / '.join([str(d) for d in [cdim, gdim] if d is not None])
xdims = [d for d in [cdim, gdim] if d is not None]

# Compute widths
width = (1-(2.*self.padding)) / len(values['category'])
Expand Down Expand Up @@ -887,7 +888,7 @@ def _create_bars(self, axis, element):
leg_spec = self.legend_specs[self.legend_position]
if self.legend_cols: leg_spec['ncol'] = self.legend_cols
axis.legend(title=', '.join(title), **leg_spec)
return bars, xticks, xlabel
return bars, xticks, xdims


def update_handles(self, key, axis, element, ranges, style):
Expand Down Expand Up @@ -1036,11 +1037,8 @@ def get_data(self, element, ranges, style):
style.pop('zorder')
style.pop('label')
style['vert'] = not self.invert_axes

xlabel = ','.join([str(d) for d in element.kdims])
ylabel = str(element.vdims[0])

return (data,), style, {'xlabel': xlabel, 'ylabel': ylabel}
return (data,), style, {'dimensions': [element.kdims,
element.vdims[0]]}


def init_artists(self, ax, plot_args, plot_kwargs):
Expand Down
2 changes: 1 addition & 1 deletion holoviews/plotting/mpl/chart3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import matplotlib.cm as cm

from ...core import Dimension
from ...core.util import match_spec, basestring
from ...core.util import basestring
from ..util import map_colors
from .element import ColorbarPlot
from .chart import PointPlot
Expand Down
Loading

0 comments on commit e1b33fd

Please sign in to comment.