Thanks John. I hope you aren't receiving this reply twice (my email kicked me
out when I hit send). I actually am importing pylab so it isn't an entirely qt
app. I didn't post all of the code originally b/c it is long (and it would
reveal how poor of a programmer I am :) ), but here are the relevant sections.
The problematic section is in blue. Please let me know if you need anything
else.
I will try the examples you suggested the next time on I'm a Windows box to see
if they behave differently than in Linux.
Thanks!
#!/usr/bin/env python
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from pylab import *
from pulse_ui import Ui_MainWindow
from mpl_pyqt4_widget import MPL_Widget
class Plot_Widget(QMainWindow, Ui_MainWindow):
def __init__(self, parent = None):
QMainWindow.__init__(self)
self.setupUi(self)
self.label_checkmark.hide()
self.usr_click = 1
self.abort_run = 0
self.R =
1.6e-19/(6.626e-34*3e8/(float(self.lineEdit_wavelength.text())*10**-9))
self.facet_fraction = 0.5
self.lengths = []
self.etads = []
self.data = loadtxt('test_data.csv',comments = '#',delimiter =
',',skiprows = 0)
self.slider_stop.setMaximum(len(self.data))
QObject.connect(self.plotBtn, SIGNAL("clicked()"),self.plotData)
QObject.connect(self.pushButton_abort,SIGNAL('clicked()'),self.abort)
def abort(self):
self.abort_run = 1
def plotSetupMain(self):
self.plotWidget.canvas.ax.cla()
self.plotWidget.canvas.ax.set_title("Pulsed LIV")
self.plotWidget.canvas.ax.title.set_fontsize(10)
self.plotWidget.canvas.ax.set_xlabel("Current (mA)", fontsize = 9)
self.plotWidget.canvas.ax.set_ylabel("Light (mW)", fontsize = 9)
labels_x = self.plotWidget.canvas.ax.get_xticklabels()
labels_y = self.plotWidget.canvas.ax.get_yticklabels()
for xlabel in labels_x:
xlabel.set_fontsize(8)
for ylabel in labels_y:
ylabel.set_fontsize(8)
ylabel.set_color('b')
self.plotWidget.canvas.ax.grid()
def plotData(self):
self.plotSetupMain()
self.label_checkmark.hide()
del self.plotWidget.canvas.ax.lines[:]
for i in range(0,len(self.data)):
line, = self.plotWidget.canvas.ax.plot([self.data[i,1]],
[self.data[i,0]], 'bo')
self.plotWidget.canvas.draw()
if self.abort_run == 1:
break
if self.abort_run == 0:
self.plotWidget.canvas.ax.plot(self.data[:,1], self.data[:,0], 'bo')
self.usr_click = 0
self.slider_start.setValue(len(self.data)/2)
self.usr_click = 0
self.slider_stop.setValue(len(self.data))
a,b =
polyfit(self.data[self.slider_start.value():self.slider_stop.value(),1],self.data[self.slider_start.value():self.slider_stop.value(),0+self.acquire],1)
fit = a*self.data[:,1] + b
self.plotWidget.canvas.ax.plot(self.data[:,1], fit, 'g-',linewidth
= '2')
self.plotWidget.canvas.ax.axvline(self.data[self.slider_start.value()-1,1],linestyle
= '--',color = 'r')
self.plotWidget.canvas.ax.axvline(self.data[self.slider_stop.value()-1,1],linestyle
= '--',color = 'k')
self.plotWidget.canvas.draw()
self.label_etad.setText('%.3f' % (a*self.R/self.facet_fraction))
self.label_ith.setText('%.3f' % (-b/a) + ' mA')
else:
self.abort_run = 0
--- On Tue, 6/9/09, John Hunter <jdh2...@gmail.com> wrote:
From: John Hunter <jdh2...@gmail.com>
Subject: Re: [Matplotlib-users] MPL with PyQt: different behavior on Windows
vs. Linux
To: "Steve Nicholes" <emailaddress_...@yahoo.com>
Cc: matplotlib-users@lists.sourceforge.net
Date: Tuesday, June 9, 2009, 6:25 PM
On Tue, Jun 9, 2009 at 5:17 PM, Steve
Nicholes<emailaddress_...@yahoo.com> wrote:
> I am writing some code for automated testing via GPIB using MPL and PyQt.
> To simulate automated data collection while debugging the program, I have
> added a for loop (see below) after reading in a data file that plots each
> point one by one. When I run the program in Linux, I see each point appear
> on the canvas one by one as designed, but when I run the same code in
> Windows, nothing shows up on the canvas during the for loop. Instead, once
> the loop has completed, all points appear simulataneously. Is there any
> reason the why calls to canvas.draw() show nothing when run in Windows? I'm
> really lost on this one and would appreciate it someone can tell me what I'm
> doing wrong. If you need more info on what I'm doing, please let me know.
It would help if we could see the whole program. Ie, I assume this is
a pure qt app with no import of pyplot/pylab, but w/o seeing any code
I cannot be sure. Also, check the qt examples at
http://matplotlib.sourceforge.net/examples/animation/index.html
and see if they work on windows. If so, perhaps you can borrow
inspiration from them. If not, perhaps we need to do something
different for qt/windows animation.
JDH
JDH
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users