Variabile in ordinata grafico pgfplots

  • Creatore
    Topic
  • #90657
    Up
    0
    Down
    ::


    Ciao,
    ho un problema con un grafico utilizzando pgfplots. Dovrei mettere in ordinata, dove c’è l’asintoto orizzontale, il testo \eta_{0}.
    [attachment=843]Provagrafico.png[/attachment]
    Tuttavia utilizzando il comando
    `ticks=none,`
    Non posso utilizzare il comando
    `extra y ticks={413},
    extra y tick labels={$\eta_{0}$},`
    Inoltre utilizzando il comando
    `\node at (axis cs:0,413) [anchor=east] {test};`
    tralasciando l’allineamento, il testo viene tagliato come è visibile in figura. Come posso risolvere questo problema?
    Grazie

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


      Le chiavi da utilizzare sono [tt]ytick[/tt] e [tt]yticklabels[/tt].
      `
      ytick={413},yticklabels={$\eta_0$}
      `
      Sul manuale del pacchetto reperibile con [tt]texdoc pgfplots[/tt] nella tua shell trovi la definizione di queste chiavi. ;D

    • #90659
      Up
      0
      Down
      ::


      Ciao grazie per la risposta.
      Purtroppo anche questi comandi danno gli stessi risultati di quelli che avevo indicato io (extra y ticks…). Cioè non compare nulla se li inserisco nelle opzioni del comando \begin{loglogaxis} […] come indicato nella documentazione. Provando a inserirli dopo gli \addplot invece compare la variabile nell’origine. Per maggiore chiarezza ti allego un mwe
      [attachment=844]MWE.tex[/attachment]

      Attachments:
      You must be logged in to view attached files.
    • #90660
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        Redbone” post=90201Ciao grazie per la risposta.
        Purtroppo anche questi comandi danno gli stessi risultati di quelli che avevo indicato io (extra y ticks…). Cioè non compare nulla se li inserisco nelle opzioni del comando \begin{loglogaxis} […] come indicato nella documentazione. Provando a inserirli dopo gli \addplot invece compare la variabile nell’origine. Per maggiore chiarezza ti allego un mwe
        [attachment=844]MWE.tex[/attachment]

        Ciao,
        se commento la riga tiks=none nelle opzioni del grafico \eta_0 compare.
        R.

      • #90661
        Up
        0
        Down
        ::


        Infatti il problema sorge proprio perché si è inserito [tt]ticks=none[/tt] che automaticamente impedisce di visualizzare i ticks e le label. Citando la documentazione:

        /pgfplots/ticks=minor|major|both|none (initially both)
        Enables/disables the small tick lines either for single axis or for all of them. Major ticks are those placed at the tick positions and minor ticks are between tick positions. Please note that minor ticks are automatically disabled if xtick is not a uniform range52.

        Secondo punto: `\node at (axis cs:0,413) [anchor=east] {test};`Che il testo risulti tagliato è normale: per dirla con parole molto povere, quello che pgfplots realizza è la tela del grafico “clippata” (perdonatemi il termine). Tradotto in TikZ-termini, il grafico è composto da una normale tikzpicture in cui si può disegnare ciò che si vuole attraverso i soliti metodi, ma il grafico in sè è un grande “nodo”: ci si può disegnare all’interno come si può fare in tutti i nodi di TikZ con un [tt]path picture[/tt] (sezione 15.5 Generalized Filling: Using Arbitrary Pictures to Fill a Path del manuale). Il punto è che qualsiasi elemento disegnato che sia più grande delle dimensioni di quel nodo viene clippato; stessa cosa capita se si inserisce qualcosa vicino al bordo.

        Detto questo, puoi sempre disegnare fuori dall’ambiente axis (o in questo caso loglogaxis), come dicevo. Tieni conto che l’angolo in basso a sinistra ha coordinate (0,0). La tela, se non si cambiano dimensioni, ha nell’angolo opposto coordinate (6,6). Perciò risulta chiaro che tu vuoi inserire la tua etichetta $\eta_0$ in un punto fra (0,0) e (0,6).

        Codice:`
        \documentclass{scrreprt}
        \usepackage{pgfplots}
        \pgfplotsset{compat=1.9}

        \begin{document}

        \begin{figure}
        \centering
        \begin{tikzpicture}
        \begin{loglogaxis} [
        xmin=1,xmax=1000000,
        ymin=1,ymax=1000,
        grid=major,
        xlabel=log $\dot{\gamma}$,
        ylabel=log $\eta$,
        ticks=none,
        grid=none,
        ]
        \addplot [densely dashed,color=black] coordinates {
        (1,413)
        (90,413)
        };
        \addplot coordinates {
        (1,407.288)
        (1.585,401.21)
        (2.512,393.111)
        (6.31,368.66)
        (10,351.175)
        (15.849,329.596)
        (25.119,303.826)
        (39.811,274.229)
        (63.096,241.724)
        (100,207.7345)
        (158.4893,173.967)
        (251.188,142.0863)
        (398.107,113.399)
        (630.957,88.68406)
        (1000,68.1735)
        (1584.893,51.676)
        (2511.886,38.736)
        (3981.072,28.7864)
        (6309.573,21.2513)
        (10000,15.61074)
        (15848.93,11.42484)
        (251188.6,1.69033)
        (398107.2,1.22588)
        (630957.3,0.888785)
        (100000,3.2093)
        };
        \addplot coordinates {
        (90,413)
        (100000,3.2093)
        };
        \addplot coordinates {
        (90,1)
        (90,413)
        };
        \draw
        (axis cs:63095.73,4.417346)
        |- (axis cs:251188.6,1.690339)
        node[near start,left]
        {$n$};
        \node at (axis cs:90,733) [anchor=north] {$\tau^*$};
        \end{loglogaxis}
        \node at (0,5.25) [anchor=north east] {$\eta_0$};
        \end{tikzpicture}
        \caption{Prova}
        \label{fig:prova}
        \end{figure}
        \end{document}
        `
        Ciao
        Claudio

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

    Go to top