come ridurre il numero dei dati in un grafico [risolto]

  • Creatore
    Topic
  • #111065
    davidebond
    Partecipante
      Up
      0
      Down
      ::


      Salve. Io dovrei creare un grafico semplicissimo in cui ad ogni x corrisponde un valore delle y. Ora le x sono diventate troppo tante e il grafico non ci sta su una pagina sola. Dividerlo, a mio parere non rende l’idea dell’evoluzione nei valori y. Ci sono modo per ridurre le x senza perdere l’informazione? Fare delle medie su segmenti di valori non funziona, perché i valori sarebbero troppo pochi.

      Grazie. Ciao,

      davide

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

          davidebond” post=111351Salve. Io dovrei creare un grafico semplicissimo in cui ad ogni x corrisponde un valore delle y. Ora le x sono diventate troppo tante e il grafico non ci sta su una pagina sola. Dividerlo, a mio parere non rende l’idea dell’evoluzione nei valori y. Ci sono modo per ridurre le x senza perdere l’informazione? Fare delle medie su segmenti di valori non funziona, perché i valori sarebbero troppo pochi.

          Grazie. Ciao,

          davide

          Con pgfplots, le dimensioni di un grafico, la tela, possono essere imposte perciò qualsiasi grafico, a meno dei problemi di memoria di TeX, può essere scalato alle dimensioni della pagina.
          Dovresti quindi dire di più su come generi questo grafico fornendo un working example.
          R.

        • #111067
          Up
          0
          Down
          ::


          Concordo con Roberto: più informazioni sono assolutamente necessarie in questo caso.

          Molto probabilmente, stai usando una risoluzione eccessiva (di nuovo, sto ipotizzando) perciò potresti anche considerare di ridurre il numero dei campioni con script come questo.

          Per darti un rapporto: compilando con lualatex, sono riuscito a generare un plot su scala 0-30 s con risoluzione al ms. Eccessivo, compresa la dimensione del pdf risultante di oltre 8 MiB.

          Ciao
          Claudio

        • #111068
          davidebond
          Partecipante
            Up
            0
            Down
            ::


            Ok. Ecco il mwe:

            `
            \documentclass[12pt]{amsart}
            \usepackage{latexsym,amssymb}
            \usepackage[italian]{babel}
            \usepackage[T1]{fontenc}
            \usepackage{times}
            \usepackage{pgfplots}
            \pgfplotsset{width=10cm, compat=1.9}
            \usepackage{tikz}

            \begin{document}

            \section{Sezione}
            \pgfplotsset{width=16cm,compat=1.9}

            \begin{figure}[!h]
            \begin{tikzpicture}[rotate=90]
            \begin{axis}[
            title={\textsc{Titolo}},
            xlabel={coordinata-$x$},
            ylabel={coordinata-$y$},
            xmin=1, xmax=28,
            ymin=0, ymax=10,
            xtick={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28},
            ytick={0,1,2,3,4,5,6,7,8,9,10},
            legend pos=north west,
            ymajorgrids=true,
            grid style=dashed,
            ]

            \addplot[gray,
            %color=green,
            mark=*,
            mark options={black},
            ]
            coordinates {
            (1,5)(2,10)(3,8)(4,7)(5,4)(6,6)(7,8)(8,4)(9,5)(10,10)(11,9)(12,2)(13,2)(14,2)(15,2)(16,2)(17,2)(18,9)(19,2)(20,7)(21,2)(22,2)(23,9)(24,7)(25,2)(26,2)(27,2)(28,2)
            };
            \end{axis}
            \end{tikzpicture}
            \caption{\mbox{}}
            \end{figure}

            \end{document}

            `

            Per il momento va bene. Si tratta di un grafico che registra un valore per ogni giorno. Queste sono le prime quattro settimane. Fra un mese, dovrò aggiungere altre quattro settimane di valori. Certo, posso scalare il grafico, ma sarebbe illeggibile. Posso diminuire la grandezza del grafico, ma già adesso le coordinate x sono molto attaccate (quelle a due cifre), se rimpicciolisco cosa diventa? Posso fare due grafici, ma vorrei avere un colpo d’occhio su tutto. Per questo, ho domandato come posso diminuire i dati. Magari con qualche algoritmo o una rappresentazione diversa.

            Adesso, spero di essere stato chiaro.

            Grazie. Ciao,

            davide

          • #111069
            Up
            0
            Down
            ::

            davidebond” post=111363Ok. Ecco il mwe:

            `
            \documentclass[12pt]{amsart}
            \usepackage{latexsym,amssymb}
            \usepackage[italian]{babel}
            \usepackage[T1]{fontenc}
            \usepackage{times}
            \usepackage{pgfplots}
            \pgfplotsset{width=10cm, compat=1.9}
            \usepackage{tikz}

            \begin{document}

            \section{Sezione}
            \pgfplotsset{width=16cm,compat=1.9}

            \begin{figure}[!h]
            \begin{tikzpicture}[rotate=90]
            \begin{axis}[
            title={\textsc{Titolo}},
            xlabel={coordinata-$x$},
            ylabel={coordinata-$y$},
            xmin=1, xmax=28,
            ymin=0, ymax=10,
            xtick={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28},
            ytick={0,1,2,3,4,5,6,7,8,9,10},
            legend pos=north west,
            ymajorgrids=true,
            grid style=dashed,
            ]

            \addplot[gray,
            %color=green,
            mark=*,
            mark options={black},
            ]
            coordinates {
            (1,5)(2,10)(3,8)(4,7)(5,4)(6,6)(7,8)(8,4)(9,5)(10,10)(11,9)(12,2)(13,2)(14,2)(15,2)(16,2)(17,2)(18,9)(19,2)(20,7)(21,2)(22,2)(23,9)(24,7)(25,2)(26,2)(27,2)(28,2)
            };
            \end{axis}
            \end{tikzpicture}
            \caption{\mbox{}}
            \end{figure}

            \end{document}

            `

            Per il momento va bene. Si tratta di un grafico che registra un valore per ogni giorno. Queste sono le prime quattro settimane. Fra un mese, dovrò aggiungere altre quattro settimane di valori. Certo, posso scalare il grafico, ma sarebbe illeggibile. Posso diminuire la grandezza del grafico, ma già adesso le coordinate x sono molto attaccate (quelle a due cifre), se rimpicciolisco cosa diventa? Posso fare due grafici, ma vorrei avere un colpo d’occhio su tutto. Per questo, ho domandato come posso diminuire i dati. Magari con qualche algoritmo o una rappresentazione diversa.

            Adesso, spero di essere stato chiaro.

            Grazie. Ciao,

            davide

            Si, ora è chiaro. Non hai nessun problema di risoluzione.. con un valore per giorno puoi tranquillamente plottare dati di diversi anni 😀

            Il problema vero è molto più semplice: come indicare le etichette sull’asse x. Chiaramente devi raggruppare, per esempio per settimane i valori. Quindi: hai campioni giornalieri il grafico, ma `xtick={1,7,14,21,28},`

            Ciao
            Claudio

          • #111070
            davidebond
            Partecipante
              Up
              0
              Down
              ::


              Quindi, il grafico di due mesi sarebbe questo:

              `
              \documentclass[12pt]{amsart}
              \usepackage{latexsym,amssymb}
              \usepackage[italian]{babel}
              \usepackage[T1]{fontenc}
              \usepackage{times}
              \usepackage{pgfplots}
              \pgfplotsset{width=10cm, compat=1.9}
              \usepackage{tikz}

              \begin{document}

              \section{Sezione}
              \pgfplotsset{width=16cm,compat=1.9}

              \begin{figure}[!h]
              \begin{tikzpicture}[rotate=90]
              \begin{axis}[
              title={\textsc{Titolo}},
              xlabel={coordinata-$x$},
              ylabel={coordinata-$y$},
              xmin=1, xmax=56,
              ymin=0, ymax=10,
              xtick={1,7,14,21,28,35,42,49,56},
              ytick={0,1,2,3,4,5,6,7,8,9,10},
              legend pos=north west,
              ymajorgrids=true,
              grid style=dashed,
              ]

              \addplot[gray,
              %color=green,
              mark=*,
              mark options={black},
              ]
              coordinates {
              (1,6)(2,7)(3,8)(4,7)(5,7)(6,10)(7,8)(8,6)(9,9)(10,6)(11,7)(12,2)(13,2)(14,2)(15,4)(16,9)(17,7)(18,7)(19,2)(20,2)(21,8)(22,4)(23,2)(24,2)(25,2)(26,2)(27,4)(28,7)(29,5)(30,10)(31,8)(32,7)(33,4)(34,6)(35,8)(36,4)(37,5)(38,10)(39,9)(40,2)(41,2)(42,2)(43,2)(44,2)(45,2)(46,9)(47,2)(48,7)(49,2)(50,2)(51,9)(52,7)(53,2)(54,2)(55,2)(56,2)
              };
              \end{axis}
              \end{tikzpicture}
              \caption{\mbox{}}
              \end{figure}

              \end{document}

              `

              Grazie. Un altro problema risolto.

              Ciao,

              davide

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

          Go to top