|
From: <lee...@us...> - 2009-04-24 15:24:02
|
Revision: 7062
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7062&view=rev
Author: leejjoon
Date: 2009-04-24 15:23:57 +0000 (Fri, 24 Apr 2009)
Log Message:
-----------
axes_grid minor update.
Modified Paths:
--------------
trunk/matplotlib/lib/mpl_toolkits/axes_grid/__init__.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/axes_rgb.py
Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/__init__.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/__init__.py 2009-04-23 14:22:27 UTC (rev 7061)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/__init__.py 2009-04-24 15:23:57 UTC (rev 7062)
@@ -2,7 +2,7 @@
AxesGrid
"""
-
+import axes_size as Size
from axes_divider import Divider, SubplotDivider, LocatableAxes, \
make_axes_locatable
from axes_grid import AxesGrid
Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/axes_rgb.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/axes_rgb.py 2009-04-23 14:22:27 UTC (rev 7061)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/axes_rgb.py 2009-04-24 15:23:57 UTC (rev 7062)
@@ -8,12 +8,10 @@
divider = make_axes_locatable(ax)
- pad_size = Size.Fraction(Size.AxesY(ax), pad)
+ pad_size = Size.Fraction(pad, Size.AxesY(ax))
- xsize = Size.Fraction((1.-2.*pad)/3.,
- Size.AxesX(ax),)
- ysize = Size.Fraction((1.-2.*pad)/3.,
- Size.AxesY(ax))
+ xsize = Size.Fraction(Size.AxesX(ax), (1.-2.*pad)/3.)
+ ysize = Size.Fraction(Size.AxesY(ax), (1.-2.*pad)/3.)
divider.set_horizontal([Size.AxesX(ax), pad_size, xsize])
divider.set_vertical([ysize, pad_size, ysize, pad_size, ysize])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lee...@us...> - 2009-12-13 21:03:55
|
Revision: 8032
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8032&view=rev
Author: leejjoon
Date: 2009-12-13 21:03:44 +0000 (Sun, 13 Dec 2009)
Log Message:
-----------
fix wrong tick direction at the boudary of floating axes
Modified Paths:
--------------
trunk/matplotlib/lib/mpl_toolkits/axes_grid/floating_axes.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/grid_helper_curvelinear.py
Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/floating_axes.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/floating_axes.py 2009-12-13 21:02:05 UTC (rev 8031)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/floating_axes.py 2009-12-13 21:03:44 UTC (rev 8032)
@@ -12,7 +12,7 @@
from mpl_toolkits.axes_grid.axislines import AxisArtistHelper, GridHelperBase
from mpl_toolkits.axes_grid.axis_artist import AxisArtist
-from matplotlib.transforms import Affine2D
+from matplotlib.transforms import Affine2D, IdentityTransform
import numpy as np
@@ -85,7 +85,7 @@
def get_tick_transform(self, axes):
- return axes.transData
+ return IdentityTransform() #axes.transData
def get_tick_iterators(self, axes):
"""tick_loc, tick_angle, tick_label, (optionally) tick_label"""
@@ -99,17 +99,17 @@
lon_levs, lat_levs = np.asarray(lon_levs), np.asarray(lat_levs)
if lat_factor is not None:
yy0 = lat_levs / lat_factor
- dy = 0.01 / lat_factor
+ dy = 0.001 / lat_factor
else:
yy0 = lat_levs
- dy = 0.01
+ dy = 0.001
if lon_factor is not None:
xx0 = lon_levs / lon_factor
- dx = 0.01 / lon_factor
+ dx = 0.001 / lon_factor
else:
xx0 = lon_levs
- dx = 0.01
+ dx = 0.001
_extremes = self.grid_helper._extremes
xmin, xmax = sorted(_extremes[:2])
@@ -121,30 +121,60 @@
mask = (xmin <= xx0) & (xx0 <= xmax)
xx0 = xx0[mask]
+ def transform_xy(x, y):
+ x1, y1 = grid_finder.transform_xy(x, y)
+ x2y2 = axes.transData.transform(np.array([x1, y1]).transpose())
+ x2, y2 = x2y2.transpose()
+ return x2, y2
+
# find angles
if self.nth_coord == 0:
xx0 = np.empty_like(yy0)
xx0.fill(self.value)
- xx1, yy1 = grid_finder.transform_xy(xx0, yy0)
- xx2, yy2 = grid_finder.transform_xy(xx0+dx, yy0)
- xx3, yy3 = grid_finder.transform_xy(xx0, yy0+dy)
+
+ #yy0_ = yy0.copy()
+
+ xx1, yy1 = transform_xy(xx0, yy0)
+
+ xx00 = xx0.copy()
+ xx00[xx0+dx>xmax] -= dx
+ xx1a, yy1a = transform_xy(xx00, yy0)
+ xx1b, yy1b = transform_xy(xx00+dx, yy0)
+
+ yy00 = yy0.copy()
+ yy00[yy0+dy>ymax] -= dy
+ xx2a, yy2a = transform_xy(xx0, yy00)
+ xx2b, yy2b = transform_xy(xx0, yy00+dy)
+
labels = self.grid_info["lat_labels"]
labels = [l for l, m in zip(labels, mask) if m]
elif self.nth_coord == 1:
yy0 = np.empty_like(xx0)
yy0.fill(self.value)
- xx1, yy1 = grid_finder.transform_xy(xx0, yy0)
- xx2, yy2 = grid_finder.transform_xy(xx0, yy0+dy)
- xx3, yy3 = grid_finder.transform_xy(xx0+dx, yy0)
+
+ #xx0_ = xx0.copy()
+ xx1, yy1 = transform_xy(xx0, yy0)
+
+
+ yy00 = yy0.copy()
+ yy00[yy0+dy>ymax] -= dy
+ xx1a, yy1a = transform_xy(xx0, yy00)
+ xx1b, yy1b = transform_xy(xx0, yy00+dy)
+
+ xx00 = xx0.copy()
+ xx00[xx0+dx>xmax] -= dx
+ xx2a, yy2a = transform_xy(xx00, yy0)
+ xx2b, yy2b = transform_xy(xx00+dx, yy0)
+
labels = self.grid_info["lon_labels"]
labels = [l for l, m in zip(labels, mask) if m]
def f1():
- dd = np.arctan2(yy2-yy1, xx2-xx1) # angle normal
- dd2 = np.arctan2(yy3-yy1, xx3-xx1) # angle tangent
- mm = ((yy2-yy1)==0.) & ((xx2-xx1)==0.) # mask where dd1 is not defined
+ dd = np.arctan2(yy1b-yy1a, xx1b-xx1a) # angle normal
+ dd2 = np.arctan2(yy2b-yy2a, xx2b-xx2a) # angle tangent
+ mm = ((yy1b-yy1a)==0.) & ((xx1b-xx1a)==0.) # mask where dd1 is not defined
dd[mm] = dd2[mm]+3.14159/2.
#dd += 3.14159
Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/grid_helper_curvelinear.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/grid_helper_curvelinear.py 2009-12-13 21:02:05 UTC (rev 8031)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/grid_helper_curvelinear.py 2009-12-13 21:03:44 UTC (rev 8032)
@@ -8,7 +8,7 @@
from mpl_toolkits.axes_grid.axislines import \
AxisArtistHelper, GridHelperBase
from mpl_toolkits.axes_grid.axis_artist import AxisArtist
-from matplotlib.transforms import Affine2D
+from matplotlib.transforms import Affine2D, IdentityTransform
import numpy as np
class FixedAxisArtistHelper(AxisArtistHelper.Fixed):
@@ -172,7 +172,7 @@
def get_tick_transform(self, axes):
- return axes.transData
+ return IdentityTransform() #axes.transData
def get_tick_iterators(self, axes):
"""tick_loc, tick_angle, tick_label, (optionally) tick_label"""
@@ -212,31 +212,57 @@
#xx0, yy0 = xx0[mask], yy0[mask]
xx0 = xx0[mask]
+ def transform_xy(x, y):
+ x1, y1 = grid_finder.transform_xy(x, y)
+ x2y2 = axes.transData.transform(np.array([x1, y1]).transpose())
+ x2, y2 = x2y2.transpose()
+ return x2, y2
+
# find angles
if self.nth_coord == 0:
xx0 = np.empty_like(yy0)
xx0.fill(self.value)
- xx1, yy1 = grid_finder.transform_xy(xx0, yy0)
- xx2, yy2 = grid_finder.transform_xy(xx0+dx, yy0)
- xx3, yy3 = grid_finder.transform_xy(xx0, yy0+dy)
+
+ xx1, yy1 = transform_xy(xx0, yy0)
+
+ xx00 = xx0.copy()
+ xx00[xx0+dx>e1] -= dx
+ xx1a, yy1a = transform_xy(xx00, yy0)
+ xx1b, yy1b = transform_xy(xx00+dx, yy0)
+
+ xx2a, yy2a = transform_xy(xx0, yy0)
+ xx2b, yy2b = transform_xy(xx0, yy0+dy)
+
labels = self.grid_info["lat_labels"]
labels = [l for l, m in zip(labels, mask) if m]
elif self.nth_coord == 1:
yy0 = np.empty_like(xx0)
yy0.fill(self.value)
- xx1, yy1 = grid_finder.transform_xy(xx0, yy0)
- xx2, yy2 = grid_finder.transform_xy(xx0, yy0+dy)
- xx3, yy3 = grid_finder.transform_xy(xx0+dx, yy0)
+
+ xx1, yy1 = transform_xy(xx0, yy0)
+
+ xx1a, yy1a = transform_xy(xx0, yy0)
+ xx1b, yy1b = transform_xy(xx0, yy0+dy)
+
+ xx00 = xx0.copy()
+ xx00[xx0+dx>e1] -= dx
+ xx2a, yy2a = transform_xy(xx00, yy0)
+ xx2b, yy2b = transform_xy(xx00+dx, yy0)
+
labels = self.grid_info["lon_labels"]
labels = [l for l, m in zip(labels, mask) if m]
def f1():
- dd = np.arctan2(yy2-yy1, xx2-xx1) # angle normal
- dd2 = np.arctan2(yy3-yy1, xx3-xx1) # angle tangent
- mm = ((yy2-yy1)==0.) & ((xx2-xx1)==0.) # mask where dd1 is not defined
+ dd = np.arctan2(yy1b-yy1a, xx1b-xx1a) # angle normal
+ dd2 = np.arctan2(yy2b-yy2a, xx2b-xx2a) # angle tangent
+ mm = ((yy1b-yy1a)==0.) & ((xx1b-xx1a)==0.) # mask where dd1 is not defined
dd[mm] = dd2[mm]+3.14159/2.
+ #dd = np.arctan2(yy2-yy1, xx2-xx1) # angle normal
+ #dd2 = np.arctan2(yy3-yy1, xx3-xx1) # angle tangent
+ #mm = ((yy2-yy1)==0.) & ((xx2-xx1)==0.) # mask where dd1 is not defined
+ #dd[mm] = dd2[mm]+3.14159/2.
#dd += 3.14159
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lee...@us...> - 2010-03-02 01:48:00
|
Revision: 8167
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8167&view=rev
Author: leejjoon
Date: 2010-03-02 01:47:54 +0000 (Tue, 02 Mar 2010)
Log Message:
-----------
add AxisArtist.invert_ticklabel_direction and fix axis label padding in axes_grid
Modified Paths:
--------------
trunk/matplotlib/lib/mpl_toolkits/axes_grid/axis_artist.py
trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py
Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/axis_artist.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/axis_artist.py 2010-03-02 01:47:48 UTC (rev 8166)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/axis_artist.py 2010-03-02 01:47:54 UTC (rev 8167)
@@ -389,6 +389,13 @@
def _get_offset_radius(self):
return self._offset_radius
+
+ _get_opposite_direction = {"left":"right",
+ "right":"left",
+ "top":"bottom",
+ "bottom":"top"}.__getitem__
+
+
def _update(self, renderer):
pass
@@ -665,6 +672,11 @@
self.set_default_alignment(label_direction)
self.set_default_angle(label_direction)
+
+ def invert_axis_direction(self):
+ label_direction = self._get_opposite_direction(self._axis_direction)
+ self.set_axis_direction(label_direction)
+
def _get_ticklabels_offsets(self, renderer, label_direction):
"""
Calculates the offsets of the ticklabels from the tick and
@@ -1021,6 +1033,15 @@
else:
self._ticklabel_add_angle = 0
+ def invert_ticklabel_direction(self):
+ self._ticklabel_add_angle = (self._ticklabel_add_angle + 180) % 360
+ self.major_ticklabels.invert_axis_direction()
+ self.minor_ticklabels.invert_axis_direction()
+
+ # def invert_ticks_direction(self):
+ # self.major_ticks.set_tick_out(not self.major_ticks.get_tick_out())
+ # self.minor_ticks.set_tick_out(not self.minor_ticks.get_tick_out())
+
def set_axislabel_direction(self, label_direction):
"""
Adjust the direction of the axislabel.
@@ -1190,9 +1211,10 @@
# set extra pad for major and minor ticklabels:
# use ticksize of majorticks even for minor ticks. not clear what is best.
+ dpi_cor = renderer.points_to_pixels(1.)
if self.major_ticks.get_visible() and self.major_ticks.get_tick_out():
- self.major_ticklabels._set_external_pad(self.major_ticks._ticksize)
- self.minor_ticklabels._set_external_pad(self.major_ticks._ticksize)
+ self.major_ticklabels._set_external_pad(self.major_ticks._ticksize*dpi_cor)
+ self.minor_ticklabels._set_external_pad(self.major_ticks._ticksize*dpi_cor)
else:
self.major_ticklabels._set_external_pad(0)
self.minor_ticklabels._set_external_pad(0)
@@ -1301,9 +1323,20 @@
#pad_points = self.major_tick_pad
- axislabel_pad = max([self.major_ticklabels._axislabel_pad,
- self.minor_ticklabels._axislabel_pad])
+ #print self._ticklabel_add_angle - self._axislabel_add_angle
+ #if abs(self._ticklabel_add_angle - self._axislabel_add_angle)%360 > 90:
+ if self._ticklabel_add_angle != self._axislabel_add_angle:
+ if (self.major_ticks.get_visible() and not self.major_ticks.get_tick_out()) \
+ or \
+ (self.minor_ticks.get_visible() and not self.major_ticks.get_tick_out()):
+ axislabel_pad = self.major_ticks._ticksize
+ else:
+ axislabel_pad = 0
+ else:
+ axislabel_pad = max([self.major_ticklabels._axislabel_pad,
+ self.minor_ticklabels._axislabel_pad])
+
#label_offset = axislabel_pad + self.LABELPAD
#self.label._set_offset_radius(label_offset)
@@ -1341,6 +1374,7 @@
self._draw_line(renderer)
+
self._draw_ticks(renderer)
#self._draw_offsetText(renderer)
Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py 2010-03-02 01:47:48 UTC (rev 8166)
+++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py 2010-03-02 01:47:54 UTC (rev 8167)
@@ -336,11 +336,16 @@
get_label_transform() returns a transform of (transAxes+offset)
"""
loc = self._axis_direction
- angle = dict(left=0,
- right=0,
- bottom=.5*np.pi,
- top=.5*np.pi)[loc]
+ #angle = dict(left=0,
+ # right=0,
+ # bottom=.5*np.pi,
+ # top=.5*np.pi)[loc]
+ if self.nth_coord == 0:
+ angle = 0
+ else:
+ angle = 90
+
_verts = [0.5, 0.5]
fixed_coord = 1-self.nth_coord
@@ -369,6 +374,11 @@
else:
angle_normal, angle_tangent = 0, 90
+ if self.nth_coord == 0:
+ angle_normal, angle_tangent = 90, 0
+ else:
+ angle_normal, angle_tangent = 0, 90
+
#angle = 90 - 90 * self.nth_coord
major = self.axis.major
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|