Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

plot data from CSV file with matplotlib

I have a CSV file at e:\dir1\datafile.csv. It contains three columns and 10 heading and trailing lines need to be skipped. I would like to plot it with numpy.loadtxt(), for which I haven't found any rigorous documentation.

Here is what I started to write from the several tries I found on the web.

import matplotlib as mpl import numpy as np import matplotlib.pyplot as plt import matplotlib.cbook as cbook  def read_datafile(file_name):     # the skiprows keyword is for heading, but I don't know if trailing lines     # can be specified     data = np.loadtxt(file_name, delimiter=',', skiprows=10)     return data  data = read_datafile('e:\dir1\datafile.csv')  x = ??? y = ???  fig = plt.figure()  ax1 = fig.add_subplot(111)  ax1.set_title("Mains power stability")     ax1.set_xlabel('time') ax1.set_ylabel('Mains voltage')  ax1.plot(x,y, c='r', label='the data')  leg = ax1.legend()  plt.show() 
like image 918
user1850133 Avatar asked Nov 24 '12 20:11

user1850133


People also ask

How do I visualize data in a CSV file using Python?

Scatter Plot from CSV data in Pythonxlabel and ylable denote the type of data along the x-axis and y-axis respectively. plt. title allows us to mention a title for our graph. To show the graph, we use a function show().


1 Answers

According to the docs numpy.loadtxt is

a fast reader for simply formatted files. The genfromtxt function provides more sophisticated handling of, e.g., lines with missing values.

so there are only a few options to handle more complicated files. As mentioned numpy.genfromtxt has more options. So as an example you could use

import numpy as np data = np.genfromtxt('e:\dir1\datafile.csv', delimiter=',', skip_header=10,                      skip_footer=10, names=['x', 'y', 'z']) 

to read the data and assign names to the columns (or read a header line from the file with names=True) and than plot it with

ax1.plot(data['x'], data['y'], color='r', label='the data') 

I think numpy is quite well documented now. You can easily inspect the docstrings from within ipython or by using an IDE like spider if you prefer to read them rendered as HTML.

like image 73
bmu Avatar answered Sep 22 '22 09:09

bmu