Re: [Risolto] Riempimento area tra curve con pgfplots

#57514
robitex
Amministratore del forum
    Up
    0
    Down
    ::

    Ciao a tutti,
    mi scuso, non è mio solito, ma l’ansia mi obbliga a far presente che ho una certa urgenza 😥
    Per la presentazione della tesi, che sto facendo in beamer, vorrei inserire un grafico che già compare nella tesi, ma nel quale vorrei riempire le aree tra le curve con colori diversi, per renderne più veloce la lettura (dato che il tempo d’esposizione è ridotto). Ho già lavorato autonomamente con l’opzione fill di \addplot, ma ho ottenuto risultati assolutamente non soddisfacenti. Vorrei chiedere pertanto se qualcuno in gamba con pgfplots è in grado di aiutarmi.
    Riporto sotto un esempio per far risparmiare tempo a chi volesse cimentarsi. I limiti del grafico sono volutamente maggiori del dominio delle curve (dall’esempio sotto non si capisce perché, ma avrei bisogno che resti così). Vorrei questo:
    1) Riempire l’area che va da y=1 fino alla curva rossa;
    2) Riempire l’area che va dalla curva rossa a quella blu;
    3) Riempire l’area che va dalla curva blu a y=10^{-6};
    4) Evitare che vengano coperte le curve, le scritte, gli assi e la griglia.

    Grazie,
    Daniele

    PS: Se non riuscite (o non avete tempo e voglia) non c’è problema, non diventate matti… il grafico è chiaro anche così com’è.

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

    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage{layaureo}

    \usepackage{pgfplots}
    \pgfplotsset{compat=1.3}
    \pgfplotsset{compat=newest}
    \pgfkeys{/pgf/number format/.cd,fixed,precision=2}
    \pgfplotsset{grid style={gray!35}}

    \pgfplotsset{
    mysmall/.style={
    /pgfplots/grid=major,
    /pgfplots/xminorgrids=true,
    /pgfplots/xtick align=outside,
    /pgfplots/ytick align=outside,
    every axis y label/.style=
    {at={(ticklabel cs:0.5)},anchor=near ticklabel},
    legend style={font=\tiny},
    /pgfplots/legend cell align=left,
    /pgfplots/tick label style={font=\scriptsize}
    }
    }

    \begin{document}

    \begin{tikzpicture}%
    \begin{semilogyaxis}[mysmall,
    width=.9\textwidth,
    height=.8\textwidth,
    xlabel={$x$},
    ylabel={$y$},
    xmin=0,
    xmax=.5,
    ymin=1E-6,
    ymax=1,
    try min ticks log={7}
    ]

    \addplot+[no markers,color=red,domain=0.1:0.4] {12.659*x^3-8.3636*x^2+2.1229*x+0.0108};

    \addplot+[no markers,color=blue,domain=0.1:0.4] {0.1564*x^2+0.035*x-0.0003};

    \node[] at (axis cs:.2,.4) {\footnotesize Primo modello};
    \node[rotate=25] at (axis cs:.2,.05) {\footnotesize secondo modello};
    \node[] at (axis cs:.2,2E-4) {\footnotesize terzo modello};

    \end{semilogyaxis}
    \end{tikzpicture}

    \end{document}`

    Cominciamo ad esserci?
    `\documentclass[11pt,a4paper]{report}

    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage{layaureo}

    \usepackage{pgfplots}
    \pgfplotsset{compat=1.3}
    \pgfplotsset{compat=newest}
    \pgfkeys{/pgf/number format/.cd,fixed,precision=2}
    \pgfplotsset{grid style={gray!35}}

    \pgfplotsset{
    mysmall/.style={
    /pgfplots/grid=major,
    /pgfplots/xminorgrids=true,
    /pgfplots/xtick align=outside,
    /pgfplots/ytick align=outside,
    every axis y label/.style=
    {at={(ticklabel cs:0.5)},anchor=near ticklabel},
    legend style={font=\tiny},
    /pgfplots/legend cell align=left,
    /pgfplots/tick label style={font=\scriptsize}
    }
    }

    \begin{document}

    \begin{tikzpicture}%
    \begin{semilogyaxis}[mysmall,
    width=.9\textwidth,
    height=.8\textwidth,
    xlabel={$x$},
    ylabel={$y$},
    xmin=0,
    xmax=.5,
    ymin=1E-6,
    ymax=1,
    try min ticks log={7},
    domain=0.1:0.4
    ]

    \addplot[fill,color=orange,line width=0.1pt]
    {1} \closedcycle;

    \addplot[fill,no markers,color=red]
    {12.659*x^3-8.3636*x^2+2.1229*x+0.0108}
    \closedcycle;

    \addplot[fill,no markers,color=blue]
    {0.1564*x^2+0.035*x-0.0003}
    \closedcycle;

    \node at (axis cs:.25,.4) {\footnotesize Primo modello};
    \node at (axis cs:.25,.05) {\footnotesize secondo modello};
    \node at (axis cs:.25,2E-4) {\footnotesize terzo modello};
    \end{semilogyaxis}
    \end{tikzpicture}

    \end{document}`

    Ciao.

    Go to top