Secondo te estrarre i dati dalla tabella in questo modo è corretto?
Non so... Funziona? Fa ciò che deve fare? Se sì, allora è corretto

P.S.: la struttura del codice Javascript l'ho lasciata come prima.
Se è come prima allora non hai risolto niente; avrai sempre il problema di variabili PHP non definite che restituiscono, lato client, dei testi di avviso.

Ripeto, a meno che non ti serva ottenere specifiche variabili dei vari tracciati, a mio parere lato client conviene ricevere direttamente la variabile data già costruita è pronta all'uso. Tutte le varie condizioni e il resto dello script (in JavaScript) non ti serviranno più.

Sostanzialmente dovrai ottenere una cosa del genere:
codice:
var data = [
   {x:[1,2,3], y:[4,5,6], type: 'scatter'}
  ,{x:[1,2,3], y:[10,11,12], type: 'scatter'}
  ,{x:[1,2,3], y:[16,17,18], type: 'scatter'}
  //, ecc. per gli altri eventuali tracciati
];
Plotly.newPlot('grafico', data, {}, {showSendToCloud: true});
.
Quindi ciò che dovrai fare è costruire in PHP (più o meno come stai facendo) quella variabile (ovviamente come stringa testuale), così che arrivi lato client impostata in quella maniera, con tutti i dati che ti servono.

Se ti serve aiuto per la parte PHP, dal momento che la natura dell'argomento si stia diversificando, ti invito ad aprire una nuova discussione nella relativa sezione del forum e riportare lì tutti i dettagli necessari, così da non aggrovigliare in un'unica discussione diversi argomenti di diversa natura e con tematiche comunque differenti (anche se in qualche modo correlate) ma anche per poter eventualmente ricevere consigli più appropriati su quella parte.

Buon proseguimento