title: Matplotlib: Import and plot multiple time series with legends direct from .csv
body: <p>I have several spreadsheets containing data saved as comma delimited (.csv) files in the following format: The first row contains column labels as strings ('Time', 'Parameter_1'...). The first column of data is Time and each subsequent column contains the corresponding parameter data, as a float or integer. </p>
  
  <p>I want to plot each parameter against Time on the same plot, with parameter legends which are derived directly from the first row of the .csv file. </p>
  
  <p>My spreadsheets have different numbers of (columns of) parameters to be plotted against Time; so I'd like to find a generic solution which will also derive the number of columns directly from the .csv file.</p>
  
  <p>The attached minimal working example shows what I'm trying to achieve using np.loadtxt (minus the legend); but I can't find a way to import the column labels from the .csv file to make the legends using this approach.</p>
  
  <p>np.genfromtext offers more functionality, but I'm not familiar with this and am struggling to find a way of using it to do the above. </p>
  
  <p>Plotting data in this style from .csv files must be a common problem, but I've been unable to find a solution on the web. I'd be very grateful for your help &amp; suggestions.</p>
  
  <p>Many thanks</p>
  
  <pre><code>"""
  Example data: Data.csv:
  Time,Parameter_1,Parameter_2,Parameter_3
  0,10,0,10
  1,20,30,10
  2,40,20,20
  3,20,10,30  
  """
  import numpy as np
  import matplotlib.pyplot as plt
  
  data = np.loadtxt('Data.csv', skiprows=1, delimiter=',') # skip the column labels
  cols = data.shape[1] # get the number of columns in the array
  for n in range (1,cols):
      plt.plot(data[:,0],data[:,n]) # plot each parameter against time
  plt.xlabel('Time',fontsize=14)
  plt.ylabel('Parameter values',fontsize=14)
  plt.show()
  </code></pre>