[Risolto] gnuplot: if “annidati”

  • Creatore
    Topic
  • #23814
    Up
    0
    Down
    ::


    aiut… Scusate, qualcuno sa come fare grafici con gnuplot, selezionando i dati in base a più condizioni??

    Cerco di spiegarmi con esempi…

    l’istruzione:
    `p 'nomefile.dat' u (($6>0)?($6):1/0):($4)`
    grafica colonna 6 vs 4 del file di dati ma solo IF il dato della colonna 6 è >0

    l’unico modo che ho trovato per imporre 2 IF è:
    `p 'nomefile.dat' u (($6>0)?($6):1/0):(($12<2)?($4):1/0)`

    ma se ho bisogno di imporre un’altra condizione di controllo??
    qualcuno sa come si annidano le istruzioni if??
    insomma come si ottiene un IF(…AND…)!!?
    perchè so che è possibile ma non son stata capace di trovarlo……….
    aiut aiut…. – giulia

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #23815
      Up
      0
      Down
      ::


      Mi sembra una cosa piuttosto difficile da fare direttamente in gnuplot, in questi casi secondo me è meglio elaborare prima il file con altri strumenti e usare gnuplot solo per la creazione del grafici, octave è una valida scelta, per restare nel campo open source, tanto più che usa proprio gnuplot come “dispositivo di uscita”

      Ciao
      Matteo

    • #23816
      Up
      0
      Down
      ::

      Mi sembra una cosa piuttosto difficile da fare direttamente in gnuplot, in questi casi secondo me è meglio elaborare prima il file con altri strumenti e usare gnuplot solo per la creazione del grafici, octave è una valida scelta, per restare nel campo open source, tanto più che usa proprio gnuplot come “dispositivo di uscita”

      Ciao
      Matteo

      Ciao, grazie per aver risposto…..comunque penso di aver “risolto”, almeno spero!
      e il “bello” è che la risposta me l’ero in qualche modo già data da sola quando ho scritto:

      come si ottiene un IF(…AND…)!!?

      ..e infatti ho fatto così (l’ operatore binario AND è &&):
      2 condizioni
      `p 'esempio.dat' u (($1>1.5&&$1<4.5)?($2):1/0):($3) `

      3 condizioni
      `p 'esempio.dat' u (($1>1.5&&$1<4.5&&$4==1)?($2):1/0):($3)`

      4 condizioni
      `p 'esempio.dat' u (($1>1.5&&$1<4.5&&$4==1&&$5==0)?($2):1/0):($3)`

      ecc. ecc.

      in questo modo si possono mettere quante condizioni si vuole e i dati che verranno plottati saranno SOLO quelli corrispondenti a TUTTE le condizioni VERE…”basta” stare attenti a non imbrogliarsi con i vari numeri delle colonne!
      Non so se questo sia proprio il modo più corretto (o “furbo”!?) di procedere ma provando con un file di esempio semplicissimo funziona…… riporto anche quello qui sotto, nel caso il tutto possa essere utile a qualcuno!
      `
      1 2 5 0 0
      1.5 3 6 0 0
      2 4 7 0 0
      2.5 5 8 1 0
      3 6 9 1 0
      3.5 7 10 1 1
      4 8 11 0 0
      4.5 9 12 0 0
      `

      Ciao, buon proseguimento di giornata, giulia

Visualizzazione 1 filone di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top