Rimuovere notazione scientifica dagli assi di un grafico

  • Creatore
    Topic
  • #98633
    Up
    0
    Down
    ::


    Ciao a tutti,
    sto facendo un grafico in latex e ho un problema. Nonostante l’opzione:
    `yticklabel style={/pgf/number format/fixed}`
    il grafico presenta la notazione scientifica sull’asse y (vedi figura), cosa che vorrei eliminare. Cosa potrei sbagliare?

    [attachment=1185]notazione.png[/attachment]

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 14 filoni di risposte
  • Autore
    Risposte
    • #98634
      Up
      0
      Down
      ::

      Bonalumi” post=98164Ciao a tutti,
      sto facendo un grafico in latex e ho un problema. Nonostante l’opzione:
      `yticklabel style={/pgf/number format/fixed}`
      il grafico presenta la notazione scientifica sull’asse y (vedi figura), cosa che vorrei eliminare. Cosa potrei sbagliare?

      [attachment=1185]notazione.png[/attachment]

      Esempio minimo?

      Ciao
      Claudio

    • #98635
      Up
      0
      Down
      ::


      Questo è il mio codice per il grafico in questione:
      `\begin{tikzpicture}
      \begin{axis}[%
      width=4.52281008599329in,
      height=3.56718408395278in,
      scale only axis,
      xmin=0,
      xmax=60,
      xlabel={Regime di rotazione $\left[ Hz \right]$},
      xticklabel style={/pgf/number format/fixed},
      xmajorgrids,
      ymin=0.000,
      ymax=0.014,
      ylabel={Portata $\left[ kg s^{-1} \right]$},
      yticklabel style={/pgf/number format/fixed},
      %yticklabel style={/pgf/number format/.cd,fixed,fixed zerofill,precision=3,/tikz/.cd},
      ymajorgrids,
      legend entries={\textit{No Flusso},$Ma = 0.2$,$Ma = 0.4$},
      legend style={at={(1,0)},anchor=south east},
      cycle list name=black white
      ]
      \addplot+ [
      color=black,
      dashed,
      mark=x]
      table [x index=0,y index=1,col sep=comma] {\plotpath/csv/curva_caratteristica_ventilatore_centrifugo_multistadio.csv};
      \addplot+ [
      color=black,
      solid,
      mark=*,
      mark options={scale=1,fill=gray,draw=black}]
      table [x index=2,y index=3,col sep=comma] {\plotpath/csv/curva_caratteristica_ventilatore_centrifugo_multistadio.csv};
      \addplot+ [
      color=black,
      solid,
      mark=square*,
      mark options={scale=1,fill=gray,draw=black}]
      table [x index=4,y index=5,col sep=comma] {\plotpath/csv/curva_caratteristica_ventilatore_centrifugo_multistadio.csv};
      \end{axis}
      \end{tikzpicture}`
      Il risultato che vorrei ottenere è quello di avere sull’asse y i numeri che vanno da 0.000 a 0.014 al posto della notazione scientifica.

      Ovviamente accetto qualunque consiglio che possa portare migliorie al mio codice, anche non inerenti a questo problema.

    • #98636
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Io non mi preoccuperai tanto per il 10^{-2} in testa all’asse y, quanto per le unità usate e scritte.
        1) Invece di riportare i dati in kg/s portali in g/s e toglierai fattore 10^{-2} e sposterai il punto decimale di una posizione a destra, quindi non hai nemmeno l’impiccio del separatore decimale, che sarebbe anche sbagliato sbagliato. Le norme ISO richiederebbero di non scrivere mai dei valori numerici per le misure con degli zeri dopo il separatore decimale; i prefissi decimali aiutano non poco per soddisfare questa prescrizione e usando i grammi al secondo la soddisfi alla grande.
        2) In italiano e per tutte le lingue diverse dall’inglese le norme ISO impongono la virgola, lasciando il punto solo per quando si scrive in inglese; se usi siunitx questo problema lo puoi risolvere in modo automatico, ma devi leggere bene la documentazione sia di siunitx sia di tikz.
        3) Le unità di misura non si indicano mai fra parentesi quadre; le norme UNI consigliano di non metterle nemmeno fra parentesi tonde ma di scrivere qualcosa come “Portata in kg/s”
        4) È assolutamente vietato scrivere le unità di misura in corsivo; sempre le norme ISO e per noi italiani le norme UNI. Se sui siunitx non dovresti avere problemi perché i comandi di quel pacchetto mettono sempre le unità di misura nel font giusto.

      • #98637
        Up
        0
        Down
        ::


        Ti ringrazio per i suggerimenti OldClaudio. Ora il codice è così:
        `\begin{tikzpicture}
        \begin{axis}[%
        width=4.52281008599329in,
        height=3.56718408395278in,
        scale only axis,
        xmin=0,
        xmax=60,
        xlabel={Regime di rotazione in Hz},
        xticklabel style={/pgf/number format/fixed},
        xmajorgrids,
        ymin=0,
        ymax=14,
        ylabel={Portata in g/s},
        yticklabel style={/pgf/number format/fixed},
        %yticklabel style={/pgf/number format/.cd,fixed,fixed zerofill,precision=3,/tikz/.cd},
        ymajorgrids,
        legend entries={\textit{No Flusso},$Ma = 0.2$,$Ma = 0.4$},
        legend style={at={(1,0)},anchor=south east},
        cycle list name=black white
        ]
        \addplot+ [
        color=black,
        dashed,
        mark=x]
        table [x index=0,y index=1,col sep=comma] {\plotpath/csv/curva_caratteristica_ventilatore_centrifugo_multistadio.csv};
        \addplot+ [
        color=black,
        solid,
        mark=*,
        mark options={scale=1,fill=gray,draw=black}]
        table [x index=2,y index=3,col sep=comma] {\plotpath/csv/curva_caratteristica_ventilatore_centrifugo_multistadio.csv};
        \addplot+ [
        color=black,
        solid,
        mark=square*,
        mark options={scale=1,fill=gray,draw=black}]
        table [x index=4,y index=5,col sep=comma] {\plotpath/csv/curva_caratteristica_ventilatore_centrifugo_multistadio.csv};
        \end{axis}
        \end{tikzpicture}`
        mentre nel preambolo ho introdotto la seguente opzione per il pacchetto siunitx:
        `\sisetup{output-decimal-marker={,}}`
        la quale dovrebbe essere quella che attiva la virgola come separatore decimale, giusto?

        Non riesco però a capire come scrivere correttamente la legenda, in modo da non utilizzare il punto come separatore decimale. Se uso la virgoa infatti ottengo un errore nella compilazione.

        Con questa soluzione inoltre ho risolto il problema della notazione scientifica con uno stratagemma. Se avessi voluto evitare di impiegarla senza cambiare unità di misura ci sarebbe stato modo? Oppure la soluzione migliore resta quella di cambiare l’unità di misura dei dati? Perchè a quanto so generalmente è meglio esprimere i dati con l’unità di misura definita dal sistema internazionale che, ad esempio per la portata, sarebbe kg/s.

      • #98638
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Anche i prefissi decimali fanno parte del SI; quindi se esprimi i dati in g/s rispetti l’SI, rispetti le norme ISO e sei decisamante più chiaro.

        • #98639
          Up
          0
          Down
          ::


          Ti ringrazio. Beh di per se questa è una soluzione a sua modo.
          Ti chiedo un’altra cosa: è preferibile la scrittura kg/s oppure kgs^-1?

        • #98640
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Comprare le norme è estremamente costoso; se non le puoi consultare in qualche modo da qualcuno o qualche ente che le ha, allora ti consiglio di scaricare dal sito del NIST il documento sp811.pdf intitolato Guide for the use of the International System of Units (SI).

            Il NIST è il National Institute of Standards and Technology degli USA. Il documento è molto autorevole, anche se è un tutorial per insegnare ai dipendenti dell’istituto ad usare correttamente il SI anche nel mondo angloamericano; Naturalmente certe norme, come il punto decimale e il plurale delle unità di misura secondo le regole della lingua inglese non sono applicabili a noi, ma su 90 pagine di testo, ce ne è meno di una in totale per questi dettagli anglo.

            Proprio perché è un tutorial, spiega nel dettaglio l’uso corretto e l’ortografia corretta come quella che mi chiaedi: meglio kg/s o kgs-1? vedrai che entrambe sono corrette, ma gli esponenti negativi sono preferibili se bisogna elevare diverse unità a potenze negative diverse, altrimenti se i divisori sono uno solo è preferibile la barra. ma se si usa la barra e i divisori sono più d’uno, bisogna usare le parentesi ed usare una sola barra, ma se comunque si vuole usare l’esponente negativo ci vuole un spazio sottile non separabile oppure un punto centrato (vedi per esempio la tabella 3 del documento suddetto) prima dell’unità elevata ad un esponente negativo; per la tua domanda guarda in particolare il §6.1.6; non te lo posso mostrare con il browser, ma in termini LaTeX devi intercalare il comando \, (barra rovescia + virgola), così: [tt]kg\,s\ap{-1}[/tt] (\ap, con l’opzione italian per babel mette un apice sia in modo testo sia in modo matematico;\ped mette un pedice in carattere tondo sia in modo testo sia in modo matematico).
            Se usi siunitx i suoi comandi provvedono a tutto in modo automatico e non devi ricorrere ad \ap. Il pacchetto siunitx è fatto apposta per rispettare le norme ISO: siunitx –> SI unit(s) eXtended.

          • #98641
            Up
            0
            Down
            ::


            Ti ringrazio per la dettagliata spiegazione OldClaudio. Scaricherò il odcumento che mi hai suggerito allora. Solo una domanda: la scrittura che hai suggerito tu (kg\,s\ap{-1}) e quella di siunitx che riporto di seguito:
            `\SI{}{\gram\per\second}`
            danno quindi gli stessi risultati? Voglio dire, non mi è chiaro se siunitx inserisca automaticamente lo spazio di cui parlavi oppure no. Mi pare di aver capito di si da quanto hai scritto, ma vorrei la tua conferma. Grazie ancora!

          • #98642
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::

              Bonalumi” post=98182Ti ringrazio per la dettagliata spiegazione OldClaudio. Scaricherò il odcumento che mi hai suggerito allora. Solo una domanda: la scrittura che hai suggerito tu (kg\,s\ap{-1}) e quella di siunitx che riporto di seguito:
              `\SI{}{\gram\per\second}`
              danno quindi gli stessi risultati? Voglio dire, non mi è chiaro se siunitx inserisca automaticamente lo spazio di cui parlavi oppure no. Mi pare di aver capito di si da quanto hai scritto, ma vorrei la tua conferma. Grazie ancora!

              siunitx può usare il comando \per in modi diversi; guarda nella pagina 5 gli esempio e in particolare come cambiano quando specifichi l’opzione [tt] [per-mode=symbol] [/tt]. In ogni caso se mette l’esponente negativo mette lo spazietto, se invece mette la barra non mette lo spazietto, ma nel caso di più denominatori, quindi più istanze di \per, raccoglie i denominatori e li mette dentro una coppia di parentesi. Il tutto è molto facile e intuitivo, anche se non si deve andare a tentoni, ma bisogna leggere la documentazione di siunitx, poi il tuto viene in modo automatico.

            • #98643
              Up
              0
              Down
              ::


              Riprendo in mano questa discussione per porvi una domanda analoga. Se ritenete sia il caso che apra una nuova discussione ditemelo e lo farò.

              Ho qualche problema con gli assi della figura allegata, in particolare con l’asse y. Questo è il mio codice:
              `\begin{tikzpicture}
              \begin{axis}[%
              width=4.52281008599329in,
              height=3.56718408395278in,
              scale only axis,
              xmin=0,
              xmax=1,
              xlabel={$\text{y/s}$},
              xticklabel style={/pgf/number format/fixed},
              xmajorgrids,
              ymin=0.950,
              ymax=0.990,
              ylabel={$P_{t2} (bar)$},
              yticklabel style={/pgf/number format/fixed},%, precision=3},
              ymajorgrids,
              legend entries={$Ma = 0.2$,$Ma = 0.4$},
              legend style={at={(1,0)},anchor=south east}
              ]
              \addplot+ [
              color=black,
              solid,
              mark=*,
              mark options={scale=1,fill=gray,draw=black},
              mark repeat={1}]
              table [x index=0,y index=1,col sep=comma] {\plotpath/csv/scia_pala_solida.csv};
              \addplot+ [
              color=black,
              solid,
              mark=square*,
              mark options={scale=1,fill=gray,draw=black},
              mark repeat={1}]
              table [x index=2,y index=3,col sep=comma] {\plotpath/csv/scia_pala_solida.csv};
              \end{axis}
              \end{tikzpicture}`
              Perchè la numerazione non è corretta? Ho provato anche ad attivare l’opzione precision, che qui compare commentata, ma in quel caso ottengo un errore in fasi di compilazione.
              [attachment=1197]scia.jpg[/attachment]

              Attachments:
              You must be logged in to view attached files.
            • #98644
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Forse indicando precision=4 ? È solo un’idea che non ho collaudato.

              • #98645
                Up
                0
                Down
                ::


                In teoria precision dovrebbe indicare i decimali, non ne sono sicuro al 100%, ma solitamente è sempre così. Ma comunque se uso precision ottengo un errore, dubito che cambiando il valore la cosa si risolva.

              • #98646
                Liverpool
                Partecipante
                  Up
                  0
                  Down
                  ::

                  Bonalumi” post=98474In teoria precision dovrebbe indicare i decimali, non ne sono sicuro al 100%, ma solitamente è sempre così. Ma comunque se uso precision ottengo un errore, dubito che cambiando il valore la cosa si risolva.

                  Non devi usare [tt]precision=3[/tt] ma [tt]/pgf/number format/precision=3[/tt].
                  Comunque sarebbe stato più indicato aprire un altro filone e inserire un esempio compilabile.

                • #98647
                  Up
                  0
                  Down
                  ::


                  Ti ringrazio per il suggerimento e anche per quanto riguarda l’aprire un nuovo post. La prossima volta farò così.
                  Tornando al mio problema se uso format/precision=3 il problema si risolve ma i numeri compaiono in 2 formati diversi:
                  – 0,98
                  – 0,985
                  L’opzione fixed a quanto so consente di avere un formato unico. Non c’è modo di usare entrambe?

                • #98648
                  Liverpool
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    `yticklabel style={/pgf/number format/.cd, fixed zerofill, precision=3},`

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

                Go to top