Problema con dominio pgfplot-gnuplot

  • Creatore
    Topic
  • #90766
    Up
    0
    Down
    ::


    Ciao a tutti,
    sto disegnando una superficie da un file .dat contenente i risultati di alcuni misurazioni ottenendo la superficie che allego in figura. Il problema è che le misurazioni riguardano un pezzo con una forma vagamente esagonale pertanto ad esempio i punti (0,-6)(0,6)(45,6)… non hanno alcun significato fisico. Leggendo in internet e la documentazione del pacchetto pgfplot non ho trovato nulla che faccia al mio caso. Quello che vorrei è porre una serie di condizioni del tipo:
    Se x<10 e -3 disegna
    Se x<10 e y>3 e x+ydisegna
    Cioè vorrei che pgfplot disegnasse la superficie solo all’interno del dominio da me stabilito e fuori non disegnasse nulla.
    Per quanto riguarda gnuplot ho trovato qualcosa sull’operatore “?” ma questo richiede una f(x) e non sapendo usare gnuplot non so come fare.
    In alternativa mi basterebbe anche solo disegnare 4 triangoli bianchi sopra il grafico 2-D ma anche in questo caso non ho idea di come fare.
    Se qualcuno potesse indicarmi una strada per risolvere questo problema gliene sarei grato

    Sono riuscito a ottenere il disegno che volevo con mathematica ma purtroppo il risultato grafico è abbastanza triste

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #90767
      Up
      0
      Down
      ::


      In [tt]gnuplot[/tt] puro io farei così:
      `f(x,y,z)=(x <1 && -3 < y < 3) ? z : 1/0 splot "data.dat" using 1:2:(f($1,$2,$3))` cioè definirei una funzione [tt]f(x,y,z)[/tt] che grafica il punto [tt]z[/tt] solo se sono soddisfatte le condizioni su [tt]x[/tt] e [tt]y[/tt] e poi chiederei a [tt]gnuplot[/tt] questa funzione valutata su tutti i punti del file di input. Non so come si faccia questo in [tt]pgfplots[/tt] o se questo pacchetto fornisca altri metodi per ottenere lo stesso risultato P.S.: [tt]?:[/tt] è un operatore ternario 😉

    • #90768
      Liverpool
      Partecipante
        Up
        0
        Down
        ::


        Qualsiasi soluzione che lavori direttamente sui dati iniziali, che sia fatta con Mathematica o similare, con gnuplot o con pgfplots, ti darà un bordo frastagliato, perché il disegno di superficie viene fatto su tasselli rettangolari perciò, a meno che i tasselli da “spegnere” non siano tutti allineati lungo un lato (che credo sia la condizione x<10 & -3

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

    Go to top