[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