* Slight refactoring in wx/lib/plot/examples/demo.py

* Add a __init__.py
* Update the PyPlot sample in the main wxPython demo to use the new plot demo
This commit is contained in:
Robin Dunn
2016-08-10 10:48:54 -07:00
parent 4eb38cb526
commit ce00fc06a5
3 changed files with 31 additions and 94 deletions

View File

@@ -1,24 +1,23 @@
#!/usr/bin/env python
import wx
hadImportError = False
try:
import numpy
import wx.lib.plot
except ImportError:
hadImportError = True
################################################################\
# Where's the code??? |
# |
# wx.lib.plot.py came with its own excellent demo built in, |
# for testing purposes, but it serves quite well to demonstrate |
# the code and classes within, so we are simply borrowing that |
# code for the demo. Please load up wx.lib.plot.py for a review |
# of the code itself. The demo/test is at the bottom of |
# the file, as expected. |
################################################################/
#############################################################################
# Where's the code???
#
# The wx.lib.plot package comes with its own excellent demo built in, for
# testing purposes, but it serves quite well to demonstrate the code and
# classes within, so we are simply importing and using that code for this
# sample in the wxPython demo. Please load up wx/lib/plot/examples/demo.py
# for a review of the demo code itself.
#############################################################################
#---------------------------------------------------------------------------
@@ -32,7 +31,8 @@ class TestPanel(wx.Panel):
def OnButton(self, evt):
win = wx.lib.plot.TestFrame(self, -1, "PlotCanvas Demo")
from wx.lib.plot.examples.demo import PlotDemoMainFrame
win = PlotDemoMainFrame(self, -1, "wx.lib.plot Demo")
win.Show()
#---------------------------------------------------------------------------
@@ -44,12 +44,10 @@ def runTest(frame, nb, log):
else:
from wx.lib.msgpanel import MessagePanel
win = MessagePanel(nb, """\
This demo requires the Numeric or numarray module,
which could not be imported. It probably is not installed
(it's not part of the standard Python distribution). See the
Python site (http://www.python.org) for information on
downloading source or binaries.""",
'Sorry', wx.ICON_WARNING)
This demo requires the numpy module, which could not be imported.
It probably is not installed (it's not part of the standard Python
distribution). See https://pypi.python.org/pypi/numpy for information
about the numpy package.""", 'Sorry', wx.ICON_WARNING)
return win
@@ -63,79 +61,19 @@ else:
<html><body>
<center><h2>PyPlot</h2></center>
This demo illustrates the features of the new PyPlot modules, found
in wx.lib.plot.py. All methods and functions are documented clearly
therein; only the overview is included here.
This demo illustrates the features of the PyPlot modules, found
in the wx.lib.plot package.
<p>
PyPlot is an improvement over wxPlotCanvas, which is now deprecated.
If you are using wxPlotCanvas now, please make plans to migrate in
anticipation of the time that wxPlotCanvas disappears completely.
<p>
The demo illustrates four different plot styles (with appropriate
The demo illustrates several different plot styles (with appropriate
variations on fonts, etc, to show how flexible it is) as well as
provides you with a means to tinker with all the features that
come with the class itself.
come with the class itself. Be sure to explore the options in the
Plot and Options menus to explore some of the capabilities of this
plotting package.
<p><ul>
<li>File Menu
<ul>
<li>Page Setup
<p>This allows you to set up how the plot will be printed. This
is built into the library itself.
<li>Print Preview
<p>As you might expect, this allows you to preview how the plot
will look when printed, in light of the page setup you may
have selected above.
<li>Print
<p>Surprise! It prints the current plot to your printer! :-)
<li>Save Plot
<p>That's right, the library even provides you with the means
to export the plotted data out to a graphics file. Several
formats are allowed for, basically any image class that
supports saving.
</ul>
<li>Plot Menu
<ul>
<li>Plot 1 ... Plot 5
<p>Different data with different plot formats, including one empty
plot.
<li>Enable Zoom
<p>If Zoom is enabled, you can rubber-band select an area of the
plot to examine it in detail using the left mouse button. Right
mouse button zooms back out. This is automatically supported
by the library, all you have to do is turn it on.
<li>Enable Grid
<p>Plots can have different styles of grids, and and these grids can
be turned on or off as needed.
<li>Enable Legend
<p>Plot can have legends or not, the contents which are definable
by you.
</ul>
</ul>
<HR><pre>
%s</pre>
</body></html>
""" % wx.lib.plot.__doc__
"""
if __name__ == '__main__':

View File

View File

@@ -300,19 +300,15 @@ def _draw10Objects():
# ---------------------------------------------------------------------------
### Demo Application
# ---------------------------------------------------------------------------
class DemoApp(object):
class PlotDemoApp(object):
def __init__(self):
self.app = wx.App()
self.frame = MainFrame(None, -1, "PlotCanvas")
self.frame = PlotDemoMainFrame(None, -1, "PlotCanvas")
self.frame.Show(True)
wx.CallAfter(wx.MessageBox,
"Various plot types can be shown using the Plot menu. " +
"Check out the Options menu too.",
"wx.lib.plot Demo")
self.app.MainLoop()
class MainFrame(wx.Frame):
class PlotDemoMainFrame(wx.Frame):
# -----------------------------------------------------------------------
### UI Initialization
# -----------------------------------------------------------------------
@@ -342,7 +338,10 @@ class MainFrame(wx.Frame):
# Show closest point when enabled
self.client.canvas.Bind(wx.EVT_MOTION, self.OnMotion)
self.Show(True)
wx.CallAfter(wx.MessageBox,
"Various plot types can be shown using the Plot menu. " +
"Check out the Options menu too.",
"wx.lib.plot Demo")
def _init_file_menu(self):
@@ -979,7 +978,7 @@ def run_demo():
"""
Run the :mod:`wx.lib.plot` demo application.
"""
DemoApp()
PlotDemoApp()
if __name__ == '__main__':