Formato numeri nei label in pgfplots

  • Creatore
    Topic
  • #51207
    Up
    0
    Down
    ::


    Scusate se insisto con le domande su pgfplots, ma con il manuale di qeusto pacchetto non mi ci trovo molto. Ho un grafico in scala semilogaritmica. Vorrei sistemare alcune cose:
    1) Mettere 1 al posto di 10^0 nei label dell’asse logaritmico;
    2) Mettere i label in formato decimale sino a un certo valore, per esempio 10^{-4};
    3) … per questo magari creo un altro topic dato che non rientra nel medesimo argomento di questo.

    Grazie,
    Daniele

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

        Scusate se insisto con le domande su pgfplots, ma con il manuale di qeusto pacchetto non mi ci trovo molto. Ho un grafico in scala semilogaritmica. Vorrei sistemare alcune cose:
        1) Mettere 1 al posto di 10^0 nei label dell’asse logaritmico;
        2) Mettere i label in formato decimale sino a un certo valore, per esempio 10^{-4};
        3) … per questo magari creo un altro topic dato che non rientra nel medesimo argomento di questo.

        Grazie,
        Daniele

        Può essere d’aiuto se tu riporti il codice del grafico così da poter sperimentare sulla stessa base.
        Grazie.

      • #51209
        Up
        0
        Down
        ::


        Ecco il codice. E’ un esempio minimo compilabile completo. Pertanto basta copiare e compilare.
        `\documentclass[a4paper,11pt]{report}

        \usepackage[T1]{fontenc}
        \usepackage[latin1]{inputenc}
        \usepackage[italian]{babel}

        \usepackage{pgfplots}

        \begin{document}

        \begin{figure}[tb]
        \begin{tikzpicture}%
        \begin{semilogxaxis}[
        width=.9\columnwidth,
        height=.9\columnwidth,
        xlabel={blablabla},
        ylabel={blablabla},
        xmin=1E-5,
        xmax=1,
        ymin=0,
        ymax=7,
        grid=major,
        xminorgrids=true,
        legend pos=north west
        ]

        \addplot coordinates{
        (1, 0.89)
        (0.9, 0.9)
        (0.06, 2)
        (0.05, 3)
        (0.04, 3.5)
        }
        ;
        \addplot coordinates{
        (0.068, 3)
        (0.06, 1.5)
        (0.003, 0.9)
        (0.002, 1)
        (0.0001, 1.04648)
        (0.00001, 0.8)
        };

        \legend{curva 1, curva 2}

        \end{semilogxaxis}
        \end{tikzpicture}%
        \caption{Compilando io osservo i problemi che ho menzionato. Se poi avete anche suggerimenti per migliorare il codice e lo stile sono ben accetti. Ho sfoltito e modificato leggermente i dati, per cui le curve non sono brutte come appaiono qui.}
        \label{fig:figura1}
        \end{figure}

        \end{document}`

        Grazie,
        Daniele

      • #51210
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Non so se si possa cambiare lo stile della numerazione delle ascisse logaritmiche, ma io le ho sempre viste così e le ho sempre fatte così.

        • #51211
          Up
          0
          Down
          ::


          Sinceramente preferirei cambiare il formato. Questo, anche se probabilmente è più corretto, non mi piace.
          Intanto grazie,
          Daniele

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


            Guarda, io darei retta al professore, specie se ci sono delle norme di formato che dicono come si deve rappresentare un grafico logaritmico, ma se proprio vuoi, assumendotene la responsabilità, puoi usare il codice seguente.

            Smentisco a mio parere la tua esperienza con il manuale di PGFPLOTS. Dopo qualche tentativo sono riuscito a trovare il nome della proprietà giusta.
            Due commenti al codice:
            Ho dovuto mettere una virgola iniziale nella lista per xticklabels, probabilemente per un bug di lettura.
            Ho inserito anche un puntello (il cmd \rule) per abbassare un po’ la prima etichetta, altrimenti collideva con lo zero dell’asse delle y.
            Ciao. Ho fretta adesso devo andare.

            `\documentclass[a4paper,11pt]{report}

            \usepackage[T1]{fontenc}
            \usepackage[utf8]{inputenc}
            \usepackage[italian]{babel}

            \usepackage{pgfplots}

            \begin{document}

            \begin{figure}[tb]
            \begin{tikzpicture}%
            \begin{semilogxaxis}[
            width=.9\columnwidth,
            height=.9\columnwidth,
            xlabel={blablabla},
            ylabel={blablabla},
            xmin=1E-5,
            xmax=1,
            ymin=0,
            ymax=7,
            grid=major,
            xminorgrids=true,
            legend pos=north west,
            xticklabels={,\rule{0pt}{10pt}0.00001,0.0001,0.001,0.01,0.1,1}
            ]

            \addplot coordinates{
            (1, 0.89)
            (0.9, 0.9)
            (0.06, 2)
            (0.05, 3)
            (0.04, 3.5)
            };

            \addplot coordinates{
            (0.068, 3)
            (0.06, 1.5)
            (0.003, 0.9)
            (0.002, 1)
            (0.0001, 1.04648)
            (0.00001, 0.8)
            };

            \legend{curva 1, curva 2}

            \end{semilogxaxis}
            \end{tikzpicture}%
            \caption{Come vedi con \textsc{pgfplots} tutto è possibile.}
            \label{fig:figura1}
            \end{figure}

            \end{document}`

          • #51213
            Up
            0
            Down
            ::


            Confermo quanto dice robitex:
            nel manuale di pgfplots c’è scritto tutto, più o meno chiaramente.
            Inoltre, contiene un numero di esempi così elevato che è difficile
            pensare di avere sotto mano un problema specifico che non possa
            essere risolto spulciando con pazienza quel documento.

            Agostino

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

        Go to top