1 / 12

Python plotting curves chapter 10_5

Python plotting curves chapter 10_5. From Think Python How to Think Like a Computer Scientist. MatPlotLib.

lineberry
Download Presentation

Python plotting curves chapter 10_5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pythonplotting curveschapter 10_5 From Think Python How to Think Like a Computer Scientist

  2. MatPlotLib • matplotlib.pyplotis a collection of command style functions that make matplotlib work like MATLAB. Each pyplot function makes some change to a figure: eg, create a figure, create a plotting area in a figure, plot some lines in a plotting area, decorate the plot with labels, etc.... import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.ylabel('some numbers') plt.show() from matplotlib.pyplotimport * plot([1,2,3,4]) ylabel('some numbers') show() Auto generates x values here!

  3. PLOT • plot()is a versatile command, and will take an arbitrary number of arguments. For example, to plot x versus y, you can issue the command: • plt.plot([1,2,3,4], [1,4,9,16]) • For every x, y pair of arguments, there is an optional third argument which is the format string that indicates the color and line type of the plot. • import matplotlib.pyplot as plt • plt.plot([1,2,3,4], [1,4,9,16], 'ro') • plt.axis([0, 6, 0, 20]) • plt.show() red circle

  4. Line and Text Properties • import matplotlib.pyplot as plt • plt.plot([1,2,3,4], [1,4,9,16], linewidth=8.0 ) #thick line • plt.axis([0, 6, 0, 20]) #sets y axis values • plt.xlabel('This is the x axis', fontsize=14,color = 'red') • plt.ylabel('This is the y axis') • plt.title('Our Example Graph') • plt.show() 2d Line Properties Text Properties

  5. Two graphs • import matplotlib.pyplot as plt • # plot graphs • plt.plot([1,2,3,4,5], [1,4,9,16,25], linewidth = 4.0 , color='blue') #thick line • plt.plot([1,2,3,4,5],[1,2,3,4,5], linewidth = 4.0, color='red') • plt.axis([0, 6, 0, 30]) #sets y axis values • plt.xlabel('This is the x axis', fontsize = 14, color = 'green') • plt.ylabel('This is the y axis', fontsize = 14, color = 'green') • plt.title('Our Example with two Graphs', fontsize = 18, color = 'blue') • plt.show()

  6. CSV Files • Comma separated value files are very popular and it turns out that python can easily process these guys. These are quite simple involving nothing more than data separated by commas. • Normally each line of a csv file has the same number of values listed. Spaces are allowed. • 12, 34, 54, 6, 5 • 5,43,77,2,33 • 78,12,8,4, 23 • and so on. We normally read each line of the file and split it up using the commas as an indication where to separate the values.

  7. Example using Split • Suppose the past slides data is in file data.txt. The following program will read in each line and print it out separated by spaces (just to show it works) • file = open('data.txt','r') • for line in file: • nums= line.split(',') # nums is now a list of the values • for v in nums: • print v, OUTPUT: 12 34 54 6 5 5 43 77 2 33 78 12 8 4 23

  8. CSV Files and EXCEl • Excel knows about CSV files if .csv is used as the extension • Suppose we create a csv file using python. • x=-10 • x_values=[] • file=open('data.csv','w') • while(x<=10): • x_values.append(x) • x=x+.5 • for x in x_values: • print >>file,x,’,’, x**2,',',10*x • file.close() • You can open data.csv in excel now the csv extension is required

  9. Same thing in Python • import matplotlib.pyplot as plt • x=-10 • x_values=[] • file=open('data.csv','w') • while(x<=10): • x_values.append(x) • x=x+.5 • y1_value=[] • y2_value=[] • for x in x_values: • y1_value.append(x**2) • y2_value.append(10*x) • plt.plot(x_values,y1_value) • plt.plot(x_values,y2_value) • plt.show() • file.close()

  10. Reading EEG data • First lets look at eegdata as generated by a 14 channel emotive headset. This device creates a csv file that has quite a few values per row. We are only interested in the first 16 values. You can look at the .csv file using either excel or a pure text editor or both. Excel will automatically load the .csv file into columns using the , as a separator. • Let do so in class today.

  11. Here is the code to read one column only and graph. • from pylab import plot, show, title, xlabel, figure • defreadData(fp,col): • values=[] • fp.readline() #skip the first line • for line in fp: • #extract column col. Col 2 is the first real one • row=line.split(",") • values.append( float(row[col])) • return values

  12. Continued • filename='eegdata.csv' • fp = open(filename) • ch = raw_input('Enter channel you want to display') • ch = int(ch) • fig=figure(1) • fig.suptitle("EEG Channel Display\n",fontsize=24) • y_values=[] • fp.readline() #skip the first line • for line in fp: • #extract column col. Col 2 is the first real one • row=line.split(",") • y_values.append( float(row[ch])) • title('Channel '+str(ch)) • xlabel('Time(1/128 of a sec)') • plot(y_values[0:1100]) • show()

More Related