diff --git a/quickmap.py b/quickmap.py index ab9b1d0c767e05870e04ca0d0dc7ba8440591c32..795147a1e7b1c8c112bb1488bfde6f53356a7d01 100644 --- a/quickmap.py +++ b/quickmap.py @@ -173,4 +173,4 @@ def DataFileToXYArray(fname, lineDelimiter = '\n', wordDelimiter = ' ', commentS yArray.append(_DataType(ar[1])) except: print('At data line "{}":'.format(ori_line)) - return xArray, yArray \ No newline at end of file + return xArray, yArray diff --git a/va/__pycache__/quickmap.cpython-36.pyc b/va/__pycache__/quickmap.cpython-36.pyc index a63e86d05d41d89c53bdbef5e6eded6c24a6b0f0..eb5b18956606b5667c5fc29c53fd666ac54e8833 100644 Binary files a/va/__pycache__/quickmap.cpython-36.pyc and b/va/__pycache__/quickmap.cpython-36.pyc differ diff --git a/va/quickmap.py b/va/quickmap.py deleted file mode 100644 index c2ced5264fca1033d11ae0fc6d897587ef34c0c3..0000000000000000000000000000000000000000 --- a/va/quickmap.py +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/env python3 -# -*- coding: UTF-8 -*- -# Gereric: Draw line. -# Recolic Keghart, Apr 29, 2017. - -import numpy -from scipy.optimize import leastsq -import matplotlib.pyplot as plt -from matplotlib import rcParams - -def GetMap(parrX, parrY, windowX = 12, windowY = 8, line = False, passO = False): - print('This quickmap.py is deleted becaused of out of date!!!') - arrX, arrY = parrX, parrY - maxX, maxY = max(arrX)*1.2, max(arrY)*1.25 - - # Do calculate - # y = k x + b (I = k V + b) - print('Your input: ', arrX, '|', arrY) - print('Data collection done. Generating result...') - V, I = numpy.array(arrX), numpy.array(arrY) - def lineFunc(kb, v): - k,b=kb - if passO: - return k*v - else: - return k*v+b - - lossFunc = lambda kb, v, i : lineFunc(kb, v) - i - - # Fire! - if line: - kb0 = [10,0] - kbFinal = leastsq(lossFunc, kb0, args=(V, I)) - k,b=kbFinal[0] - print('Fit line done. Y=', k, 'X +', b) - else: - print('Drawing map without fitting a line...') - - # Draw function map. - rcParams['grid.linestyle']='-' - rcParams['grid.color'] = 'blue' - rcParams['grid.linewidth'] = 0.2 - plt.figure(figsize=(windowX, windowY)) - plt.scatter(V,I,color="red",label="Sample Point",linewidth=3) - if line: - px=numpy.linspace(0,maxX,1000) - py=k*px+b - plt.plot(px,py,color="orange",label="Fitting Line",linewidth=2) - plt.legend() - plt.grid() - plt.show() - - def toFloat(sstr): - if sstr == '': - return 0.0 - else: - return float(sstr) diff --git a/va/va.py b/va/va.py index 9234310fd02dd69f9d007914b9cb0b9951ff062a..2bda4d80ed47aa6f9e8c4d992d3ec192b821e1c6 100755 --- a/va/va.py +++ b/va/va.py @@ -1,7 +1,9 @@ #!/bin/env python3 import numpy + import sys -from quickmap import GetMap as draw +sys.path.append('..') +from quickmap import * print('Usage: python va.py path/va-dat.in <Voltmeter range(V)> <Ammeter range(mA)> <fit line>') print('Example: python3 va.py va-dat.in 1 15 true') @@ -10,6 +12,6 @@ Uraw,Iraw=dat[:,0],dat[:,1] U=[utrue/100*float(sys.argv[2]) for utrue in Uraw] I=[itrue/150*float(sys.argv[3]) for itrue in Iraw] if sys.argv[4] == 'true': - draw(U,I,6,4,line=True,passO=True) + GetMap(U,I,polyLine=True,poly_passO=True) else: - draw(U,I,6,4) + GetMap(U,I)