Note that there are some explanatory texts on larger screens.

plurals
  1. POErrors with matplotlib plot, python
    primarykey
    data
    text
    <p>I get this horrible massive error when trying to plot using matplotlib:</p> <pre><code>Traceback (most recent call last): File "24oct_specanal.py", line 90, in &lt;module&gt; main() File "24oct_specanal.py", line 83, in main plt.plot(Svar,Sav) File "/usr/lib64/python2.6/site-packages/matplotlib/pyplot.py", line 2458, in plot ret = ax.plot(*args, **kwargs) File "/usr/lib64/python2.6/site-packages/matplotlib/axes.py", line 3849, in plot self.add_line(line) File "/usr/lib64/python2.6/site-packages/matplotlib/axes.py", line 1443, in add_line self._update_line_limits(line) File "/usr/lib64/python2.6/site-packages/matplotlib/axes.py", line 1451, in _update_line_limits p = line.get_path() File "/usr/lib64/python2.6/site-packages/matplotlib/lines.py", line 644, in get_path self.recache() File "/usr/lib64/python2.6/site-packages/matplotlib/lines.py", line 392, in recache x = np.asarray(xconv, np.float_) File "/usr/lib64/python2.6/site-packages/numpy/core/numeric.py", line 235, in asarray return array(a, dtype, copy=False, order=order) ValueError: setting an array element with a sequence. </code></pre> <p>This is the code I am using:</p> <pre><code>import numpy as np import numpy.linalg import random import matplotlib.pyplot as plt import pylab from scipy.optimize import curve_fit from array import array def makeAImatrix(n): A=np.zeros((n,n)) I=np.ones((n)) for i in range(0,n): for j in range(i+1,n): A[j,i]=random.random() for i in range(0,n): for j in range(i+1,n): A[i,j] = A[j,i] for i in range(n): A[i,i]=1 return (A, I) def main(): n=5 #number of species t=1 # number of matrices to check Aflat = [] Aflatlist = [] #list of matrices Aflatav = [] Aflatvar = [] Aflatskew = [] remspec = [] Afreeze = [] #this is a LIST OF VECTORS that stores the vector corresponding to each extinct species as #it is taken out. it is NOT the same as the original A matrix as it is only #coherant in one direction. it is also NOT A SQUARE. Sex = [] # (Species extinct) this is a vector that corresponds to the Afreeze matrix. if a species is extinct then #the value stored here will be -1. Sav = [] # (Species average) The average value of the A cooefficiants for each species Svar = [] # (Species variance) for k in range (0,t): allpos = 0 A, I = makeAImatrix(n) while allpos !=1: #while all solutions are not positive x = numpy.linalg.solve(A,I) if any(t&lt;0 for t in x): #if any of the solutions in x are negative p=np.where(x==min(x)) # find the most negative solution, p is the position #now store the A coefficiants of the extinct species in the Afreeze list Afreeze.append(A[p]) Sex.append(-1) #given -1 value as species is extinct. x=np.delete(x, p, 0) A=np.delete(A, p, 0) A=np.delete(A, p, 1) I=np.delete(I, p, 0) else: allpos = 1 #set allpos to one so loop is broken l=len(x) #now fill Afreeze and Sex with the remaining species that have survived for m in range (0, l): Afreeze.append(A[m]) Sex.append(1) # value of 1 as this species has survived #now time to analyse the coefficiants for each species. for m in range (0, len(Sex)): X1 = sum(Afreeze[m])/len(Afreeze[m]) # this is the mean X2 = 0 for p in range (len(Afreeze[m])): X2 = X2 + Afreeze[m][p] X2 = X2/len(Afreeze[m]) Sav.append(X1) Svar.append(X2 - X1*X1) spec = [] for b in range(0,n): spec.append(b) plt.plot(Svar,Sav) plt.show() #plt.scatter(spec, Sav) #plt.show() if __name__ == '__main__': main() </code></pre> <p>I cannot figure this out at all! I think it was working before but then just stopped working. Any ideas?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload