Gnuplot per creare file di dati

  • Creatore
    Topic
  • #59564
    Up
    0
    Down
    ::


    Ciao a tutti,
    non credo sia il luogo più adatto ma voglio confidare in voi:
    devo creare un grafico in gnuplot a partire da alcuni file di dati, in particolare una prima colonna è la prima colonna del file X.dat mentre la seconda colonna è la media della seconda colonna di X.dat ed Y.dat a cui sottraggo la seconda colonna del file Z.dat.
    L’ideale sarebbe ottenere un file Plot.dat con tre colonne in cui io possa avere:
    `#1° colonna di X# #Media delle 2° colonne di X ed Y# #2° colonna di Z#
    `
    Da questo file otterrei poi il plot definitivo.
    Come posso ottenere ciò?
    Grazie

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #59565
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        Ciao a tutti,
        non credo sia il luogo più adatto ma voglio confidare in voi:
        devo creare un grafico in gnuplot a partire da alcuni file di dati, in particolare una prima colonna è la prima colonna del file X.dat mentre la seconda colonna è la media della seconda colonna di X.dat ed Y.dat a cui sottraggo la seconda colonna del file Z.dat.
        L’ideale sarebbe ottenere un file Plot.dat con tre colonne in cui io possa avere:
        `#1° colonna di X# #Media delle 2° colonne di X ed Y# #2° colonna di Z#
        `
        Da questo file otterrei poi il plot definitivo.
        Come posso ottenere ciò?
        Grazie

        Elaborare i file con Lua o con Python?
        si tratta di elaborare file di testo e dunque un linguaggio di scripting dovrebbe fare al caso tuo.
        R

      • #59566
        Up
        0
        Down
        ::


        Bhe si, potrebbe essere un’idea, il problema è che non conosco una sola riga di linguaggio.
        Avresti la pazienza e la voglia di farmi uno scriptino? La prossima volta studio, promesso. 😀

      • #59567
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          Bhe si, potrebbe essere un’idea, il problema è che non conosco una sola riga di linguaggio.
          Avresti la pazienza e la voglia di farmi uno scriptino? La prossima volta studio, promesso. 😀

          Una cosa del genere:
          `
          — apro il primo file in lettura
          local xfile = assert(io.open(“X.dat”,”r”))

          — apro il secondo file in lettura
          local yfile = assert(io.open(“Y.dat”,”r”))

          — apro un file in scrittura
          local outputfile = assert(io.open(“output.dat”,”w”))

          — ciclo di elaborazione riga per riga
          while true do
          local x, y = xfile:read(“*line”), yfile:read(“*line”)
          if x==nil or y==nil then
          break
          end
          — elaboro x ed y applicando un calcolo numerico opportuno
          — oppure lascio l'elaborazione ad una funzione
          local z = (x+y)/2
          — scrivo una riga nel file di uscita
          outputfile:write(string.format(“%8f”,z),”\n”)
          end

          — chiusura dei file
          xfile:close()
          yfile:close()
          outputfile:close()
          `

          I file e lo script si devono trovare tutti nella stessa cartella.
          Mentre se i dati sono trascritti in un particolare formato occorrerà elaborarli nella maniera opportuna.
          Per lanciare lo script, nominato per esempio “makenum.lua” apri una finestra di console e digita:
          `lua makenum.lua`
          Bye

        • #59568
          Up
          0
          Down
          ::


          Ehi grazie, prima di provarlo volevo capire qual’è il comando che seleziona una colonna di un riga.

        • #59569
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::

            Ehi grazie, prima di provarlo volevo capire qual’è il comando che seleziona una colonna di un riga.

            Ciao,
            nel codice di esempio è supposto che in ogni riga di ciascun file vi è soltanto un numero. Se non è così aggiungi l’elaborazione per estrarre i valori.
            Immagino che sulla stessa riga i valori siano separati da qualcosa, per esempio caratteri spazio. Allora non è difficile usare la libreria string di Lua per estrarli ad uno ad uno.
            Bye
            R.

          • #59570
            Up
            0
            Down
            ::


            Ok, allora con calma mi metto a studiare e poi ci provo.
            Grazie ancora.

        Visualizzazione 5 filoni di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top