Converting a list of lists to a list of objects
Here's a functional solution which I think is cleaner and makes what you are actually doing (essentially extracting columns from the data) more clear. 

I put the explanation inline as comments:

function plotlyFormat(data) {
  var data = data.slice(0),         // make a copy
      headers = data.shift(),       // remove header row and save it
      x = column(data, 0);          // calculate the x property, same for all objects

  // Create the objects, each one's "y" data is just a column 
  // of the original data

  return headers.map(function(name, i) { 
    return {x: x, y: column(data,i), name: name}
  }).slice(1);  

  // ^^^ the final "slice(1) above removes the first record, 
  // since it's the "Marker" column, not an actual sample

  // simple utility function to extract a column from a nested array (matrix)
  function column(matrix, i) { return matrix.map(function(row) { return row[i] }) }
}


Just call the function on your input data, and it will return it in the format you want.

And an uncommented version, to see the character savings :)

function plotlyFormat(data) {
  var data = data.slice(0),
      headers = data.shift(),
      x = column(data, 0);

  return headers.map(function(name, i) { 
    return {x: x, y: column(data,i), name: name}
  }).slice(1);

  function column(matrix, i) { return matrix.map(function(row) { return row[i] }) }
}