[SciPy-Dev] Cookbook update

Joseph Booker joe at neoturbine.net
Thu Dec 11 14:14:30 EST 2014


On Thu, Dec 11, 2014 at 1:56 PM, Warren Weckesser <
warren.weckesser at gmail.com> wrote:

>
>
> On Thu, Dec 11, 2014 at 1:29 PM, Ryan Nelson <rnelsonchem at gmail.com>
> wrote:
>
>> Hello Scipy-devs:
>>
>> The link below on building a Qt app with a Matplotlib widget is very
>> dated.
>> http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer
>>
>> After several research/trial/error cycles, I reproduced the Qt4 plot
>> window that you using the relevant pyplot commands. I suppose I could
>> update the Cookbook page above, but I need editing rights. Is this still
>> possible, or are we trying to point users to a new location?
>>
>> Ryan
>>
>>
>
> This is a timely question.  In the last few weeks, I've run into a couple
> things I'd like to update:
>
> * At http://wiki.scipy.org/Cookbook/LASReader, I want to add a link to
> the latest version, which is now on github:
> https://github.com/WarrenWeckesser/las
>
> * I've seen at least three occurrences (a couple on stackoverflow, and one
> private email) of someone using the argument 'order=15' in a call to the
> 'set_integrator' method of 'scipy.integrate.ode'.  Presumably this is
> because of the suggestion in the "NumPy for Matlab Users" page on the wiki (
> http://wiki.scipy.org/NumPy_for_Matlab_Users) to replace 'ode15s' with '
> scipy.integrate.ode(f).set_integrator('vode', method='bdf', order=15)'.
> This is pointless, because the stiff solver in 'vode'--presumably the
> solver of interest for someone using 'ode15s'--has a maximum order of 5,
> and the non-stiff solver has maximum order of 12.  (The maximum order of
> 'ode15s' is also 5; the '15' in the name refers to the variable order
> ranging from 1 to 5.)
>
> I can log in, but I can't edit either of those pages.
>
> Warren
>
>
> P.S. Here's the relevant code, in case it matters.
>>
>> File = run.py
>> -------------------------------------------------------------------------
>> from test import Ui_MainWindow
>>
>> from matplotlib.figure import Figure
>> from matplotlib.backends.backend_qt4agg import (
>>     FigureCanvasQTAgg as FigureCanvas,
>>     NavigationToolbar2QT as NavigationToolbar)
>>
>> from PyQt4 import QtGui
>>
>> class Main(QtGui.QMainWindow, Ui_MainWindow):
>>     def __init__(self, ):
>>         super(Main, self).__init__()
>>         self.setupUi(self)
>>
>>         self.populatefigure()
>>         self.addtoolbar()
>>         self.plotdata()
>>
>>     def populatefigure(self,):
>>         self.fig = Figure()
>>         self.canvas = FigureCanvas(self.fig)
>>         self.canvas.setParent(self.MplFigure)
>>
>>         self.mplvbox = QtGui.QVBoxLayout()
>>         self.mplvbox.addWidget(self.canvas)
>>         self.MplFigure.setLayout(self.mplvbox)
>>
>>     def addtoolbar(self,):
>>         self.toolbar = NavigationToolbar(self.canvas, self,
>>                 coordinates=True)
>>         self.addToolBar(self.toolbar)
>>
>>     def addtoolbar2(self,):
>>         self.toolbar = NavigationToolbar(self.canvas, self.MplFigure,
>>                 coordinates=True)
>>         self.mplvbox.addWidget(self.toolbar)
>>
>>     def plotdata(self,):
>>         self.axes = self.fig.add_subplot(111)
>>         self.axes.plot([1,3,2])
>>         self.canvas.draw()
>>
>> if __name__ == "__main__":
>>     '''
>>     Run IPython as follows:
>>     $ ipython --gui='qt'
>>     [In 1]: %run run.py
>>     If running this file directly from the command line, remove the
>> comments
>>     below and do the following:
>>     $ python run.py
>>     '''
>>
>>     #import sys
>>     #app = QtGui.QApplication([])
>>     main = Main()
>>     main.show()
>>     #sys.exit(app.exec_())
>> -------------------------------------------------
>>
>> File = test.py (created with Designer and pyuic4)
>> -------------------------------------------------------------------
>> # -*- coding: utf-8 -*-
>>
>> # Form implementation generated from reading ui file 'test.ui'
>> #
>> # Created: Thu Dec 11 12:32:15 2014
>> #      by: PyQt4 UI code generator 4.11.3
>> #
>> # WARNING! All changes made in this file will be lost!
>>
>> from PyQt4 import QtCore, QtGui
>>
>> try:
>>     _fromUtf8 = QtCore.QString.fromUtf8
>> except AttributeError:
>>     def _fromUtf8(s):
>>         return s
>>
>> try:
>>     _encoding = QtGui.QApplication.UnicodeUTF8
>>     def _translate(context, text, disambig):
>>         return QtGui.QApplication.translate(context, text, disambig,
>> _encoding)
>> except AttributeError:
>>     def _translate(context, text, disambig):
>>         return QtGui.QApplication.translate(context, text, disambig)
>>
>> class Ui_MainWindow(object):
>>     def setupUi(self, MainWindow):
>>         MainWindow.setObjectName(_fromUtf8("MainWindow"))
>>         MainWindow.resize(800, 600)
>>         self.centralwidget = QtGui.QWidget(MainWindow)
>>         self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
>>         self.gridLayout = QtGui.QGridLayout(self.centralwidget)
>>         self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
>>         self.MplFigure = QtGui.QWidget(self.centralwidget)
>>         self.MplFigure.setObjectName(_fromUtf8("MplFigure"))
>>         self.gridLayout.addWidget(self.MplFigure, 0, 0, 1, 1)
>>         MainWindow.setCentralWidget(self.centralwidget)
>>
>>         self.retranslateUi(MainWindow)
>>         QtCore.QMetaObject.connectSlotsByName(MainWindow)
>>
>>     def retranslateUi(self, MainWindow):
>>         MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow",
>> None))
>> -------------------------------------------------
>>
>>
>
Along the same lines, I'd also like to mention that
http://wiki.scipy.org/Cookbook/FortranIO/FortranFile and
http://wiki.scipy.org/Cookbook/FortranIO give code that does the same as
scipy.io.FortranFile (with a dtype-like API instead of the first page and
more general use then the approach in the second page).

--
Joseph Booker
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20141211/e259b717/attachment.html>


More information about the SciPy-Dev mailing list