[Yt-svn] yt-commit r481 - in trunk/yt: raven reason
mturk at wrangler.dreamhost.com
mturk at wrangler.dreamhost.com
Fri May 16 15:58:27 PDT 2008
Author: mturk
Date: Fri May 16 15:58:26 2008
New Revision: 481
URL: http://yt.spacepope.org/changeset/481
Log:
Closes #77. Can now set limits in phase plots (after moving to new profiles
this will be easier, but I am avoiding that at the moment) and you can switch
on and off logs in the slices.
Modified:
trunk/yt/raven/PlotTypes.py
trunk/yt/reason/Notebook.py
Modified: trunk/yt/raven/PlotTypes.py
==============================================================================
--- trunk/yt/raven/PlotTypes.py (original)
+++ trunk/yt/raven/PlotTypes.py Fri May 16 15:58:26 2008
@@ -195,6 +195,7 @@
class VMPlot(RavenPlot):
datalabel = None
+ colorbar = None
def __init__(self, data, field, figure = None, axes = None,
use_colorbar = True, size=None):
fields = ['X', 'Y', field, 'X width', 'Y width']
@@ -216,13 +217,22 @@
self.__init_temp_image(use_colorbar)
def __setup_from_field(self, field):
- if field in lagos.log_fields or lagos.fieldInfo[field].take_log:
+ self.set_log_field(field in lagos.log_fields
+ or lagos.fieldInfo[field].take_log)
+ self.axis_names["Z"] = field
+
+ def set_log_field(self, val):
+ if val:
self.log_field = True
self.norm = matplotlib.colors.LogNorm()
+ ttype = matplotlib.ticker.LogFormatter
else:
self.log_field = False
self.norm = matplotlib.colors.Normalize()
- self.axis_names["Z"] = field
+ ttype = matplotlib.ticker.ScalarFormatter
+ if self.colorbar:
+ self.colorbar.set_norm(self.norm)
+ self.colorbar.formatter = ttype()
def __init_temp_image(self, setup_colorbar):
temparray = na.ones(self.size)
@@ -288,6 +298,8 @@
if self.cmap:
self.image.set_cmap(self.cmap)
if self.colorbar != None:
+ self.image.set_norm(self.norm)
+ self.colorbar.set_norm(self.norm)
self.colorbar.notify(self.image)
self.autoset_label()
@@ -342,17 +354,8 @@
pass
def switch_z(self, field):
- if field in lagos.log_fields or lagos.fieldInfo[field].take_log:
- self.log_field = True
- self.norm = matplotlib.colors.LogNorm()
- ttype = matplotlib.ticker.LogFormatter
- else:
- self.log_field = False
- self.norm = matplotlib.colors.Normalize()
- ttype = matplotlib.ticker.ScalarFormatter
- if self.colorbar:
- self.colorbar.set_norm(self.norm)
- self.colorbar.formatter = ttype()
+ self.set_log_field(field in lagos.log_fields
+ or lagos.fieldInfo[field].take_log)
self.axis_names["Z"] = field
self._redraw_image()
@@ -497,6 +500,12 @@
if weight == "": weight=None
self.weight = weight
+ def set_zlim(self, zmin, zmax):
+ self.norm.autoscale(na.array([zmin,zmax]))
+ self.image.changed()
+ if self.colorbar != None:
+ self.colorbar.notify(self.image)
+
def _redraw_image(self):
l, b, width, height = self._axes.bbox.get_bounds()
self.pix = (width,height)
Modified: trunk/yt/reason/Notebook.py
==============================================================================
--- trunk/yt/reason/Notebook.py (original)
+++ trunk/yt/reason/Notebook.py Fri May 16 15:58:26 2008
@@ -245,7 +245,8 @@
def ChangeLimits(self, zmin, zmax):
self.plot.set_zlim(zmin,zmax)
- self.UpdateCanvas()
+ self.figure_canvas.draw()
+ # We don't call update canvas
def ChangeColorMapFromMessage(self, message):
cmap = message.data
@@ -255,6 +256,7 @@
def ChangeLimitsFromMessage(self, message):
zmin, zmax = message.data
self.ChangeLimits(zmin,zmax)
+ self.UpdateCanvas()
def ChangeFieldFromMessage(self, message):
pass
@@ -348,12 +350,15 @@
velocities = self.popupmenu.AppendCheckItem(-1, "Show Velocities")
velocities.Check(False)
self.popupmenu.AppendSeparator()
+ self.take_log_menu = self.popupmenu.AppendCheckItem(-1, "Take Log")
+ self.take_log_menu.Check(self.plot.log_field)
fullDomain = self.popupmenu.Append(-1, "Zoom Top")
self.Bind(wx.EVT_MENU, self.OnCenterOnMax, centerOnMax)
self.Bind(wx.EVT_MENU, self.OnCenterHere, centerHere)
self.Bind(wx.EVT_MENU, self.show_grid_boundaries, gridBoundaries)
self.Bind(wx.EVT_MENU, self.show_velocities, velocities)
+ self.Bind(wx.EVT_MENU, self.take_log, self.take_log_menu)
self.Bind(wx.EVT_MENU, self.fulldomain, fullDomain)
def SetupFigure(self):
@@ -586,6 +591,10 @@
def GetDataValue(self, x, y):
return self.plot.image._A[int(y), int(x)]
+ def take_log(self, event):
+ self.plot.set_log_field(self.take_log_menu.IsChecked())
+ self.UpdateCanvas()
+
def fulldomain(self, *args):
self.ChangeWidth(1,'1')
Publisher().sendMessage(('viewchange','width'), (1,'1'))
@@ -602,6 +611,7 @@
def ChangeField(self, field):
self.plot.switch_z(field)
self.UpdateCanvas()
+ self.take_log_menu.Check(self.plot.log_field)
def switch_field(self, event):
field = event.GetString()
@@ -770,6 +780,16 @@
self.figure_canvas.draw()
#else: print "Opting not to update canvas"
+ def ChangeLimitsFromMessage(self, message):
+ zmin, zmax = message.data
+ self.ChangeLimits(zmin,zmax)
+
+ def ChangeLimits(self, zmin, zmax):
+ print "Change Limits"
+ self.plot.set_zlim(zmin,zmax)
+ self.figure_canvas.draw()
+ # We don't call update canvas
+
if __name__ == "__main__":
app = ReasonApp(0)
app.MainLoop()
More information about the yt-svn
mailing list