Segmentos de linha pontilhada em pgfplots e alteração do tamanho da fonte na legenda

Segmentos de linha pontilhada em pgfplots e alteração do tamanho da fonte na legenda

Eu tenho o seguinte código:

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs,siunitx}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.9}
%\usepgfplotslibrary{external}
%\tikzexternalize
\begin{center}
\begin{tikzpicture}
\begin{axis}[
    title={$x-t$ graph model of LAB 1},
    height=10cm,
    width=10.2cm,
    xlabel={time ($t$)},
    ylabel={position ($x$)},
    xmin=0, xmax=10,
    ymin=0, ymax=12,
    xtick={0,1,2,3,4,5,6,7,8,9,10},
    ytick={0,2,4,6,8,10,12},
    legend pos=south east,
    ymajorgrids=true,
    grid style=dashed,
    legend entries={$x$,$x^2$},
        legend style={
            at={(1.03,0.5)},
            anchor=west}
]
\addplot[
    color=blue,
    mark=square,
    ]
    coordinates {
    (0,0)(1.48,2)(2.76,4)(4.02,6)(5.22,8)(6.43,10)(7.76,12)
    };
\addplot[
    color=red,
    mark=square,
    ]
    coordinates {
    (0,0)(1.66,2)(3.21,4)(4.76,6)(6.32,8)(7.81,10)(9.47,12)
    };
\addplot[
    color=green,
    mark=square,
    ]
    coordinates {
    (0,12)(1.53,10)(2.94,8)(4.53,6)(5.95,4)(7.36,2)(8.83,0)
    };
\addplot[
    color=black,
    mark=square,
    ]
    coordinates {
    (0,12)(1.80,10)(3.46,8)(4.94,6)(6.49,4)(8.20,2)(9.85,0)
    };
\legend{Trail 1 (fast and $+$), Trail 2 (slow and $+$), Trail 3 (fast and $-$), Trail 4 (slow and $-$)}
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}

que produz a seguinte imagem:

Gráfico

Estou me perguntando como faço para que os segmentos de linha acima sejam tracejados (ou seja, preto, azul, vermelho, verde). Quero adicionar uma linha de melhor ajuste sobre ele, então gostaria que as linhas fossem pontilhadas. Além disso, como você altera o tamanho do texto da legenda? Eu gostaria que fosse um pouco menor, então vou aumentar o gráfico. Obrigado!

Responder1

Eu fiz essas alterações:

  1. adicionado every axis plot/.append style={line width=2pt,dotted}, o que torna cada linha com 2 pontos de largura em estilo pontilhado
  2. adicionado mark options={solid}, o que torna a linha de cada marca sólida, caso contrário, elas seriam pontilhadas
  3. adicionado font=\scriptsize, ao legend style, para diminuir o texto da legenda.

insira a descrição da imagem aqui

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs,siunitx}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,
compat=1.9,
every axis plot/.append style={line width=2pt,dotted} %<- added
}
%\usepgfplotslibrary{external}
%\tikzexternalize
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
    title={$x-t$ graph model of LAB 1},
    height=10cm,
    width=10.2cm,
    xlabel={time ($t$)},
    ylabel={position ($x$)},
    xmin=0, xmax=10,
    ymin=0, ymax=12,
    xtick={0,1,2,3,4,5,6,7,8,9,10},
    ytick={0,2,4,6,8,10,12},
    mark options={solid},   %<- to get solid lines for markers
 %   legend pos=south east, %<- this is overwritten by legend style
    ymajorgrids=true,
    grid style=dashed,
    legend entries={$x$,$x^2$},
        legend style={
            at={(1.03,0.5)},
            font=\scriptsize, %<- added
            anchor=west}
]
\addplot[
    color=blue,
    mark=square,
    ]
    coordinates {
    (0,0)(1.48,2)(2.76,4)(4.02,6)(5.22,8)(6.43,10)(7.76,12)
    };
\addplot[
    color=red,
    mark=square,
    ]
    coordinates {
    (0,0)(1.66,2)(3.21,4)(4.76,6)(6.32,8)(7.81,10)(9.47,12)
    };
\addplot[
    color=green,
    mark=square,
    ]
    coordinates {
    (0,12)(1.53,10)(2.94,8)(4.53,6)(5.95,4)(7.36,2)(8.83,0)
    };
\addplot[
    color=black,
    mark=square,
    ]
    coordinates {
    (0,12)(1.80,10)(3.46,8)(4.94,6)(6.49,4)(8.20,2)(9.85,0)
    };
\legend{Trail 1 (fast and $+$), Trail 2 (slow and $+$), Trail 3 (fast and $-$), Trail 4 (slow and $-$)}
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}

Esta versão aplica o estilo de linha localmente a cada plotagem. Isso é feito adicionando line width=2pt,dottedas opções aplicadas a cada arquivo \addplot.

\documentclass[11pt]{scrartcl}
%\usepackage[utf8]{inputenc} %<- default
\usepackage[T1]{fontenc}
\usepackage{booktabs,siunitx}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,
compat=1.9,
%every axis plot/.append style={line width=2pt,dotted} %<- added
}
%\usepgfplotslibrary{external}
%\tikzexternalize
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
    title={$x-t$ graph model of LAB 1},
    height=10cm,
    width=10.2cm,
    xlabel={time ($t$)},
    ylabel={position ($x$)},
    xmin=0, xmax=10,
    ymin=0, ymax=12,
    xtick={0,1,2,3,4,5,6,7,8,9,10},
    ytick={0,2,4,6,8,10,12},
    mark options={solid},   %<- to get solid lines for markers
 %   legend pos=south east, %<- this is overwritten by legend style
    ymajorgrids=true,
    grid style=dashed,
    legend entries={$x$,$x^2$},
        legend style={
            at={(1.03,0.5)},
            font=\scriptsize, %<- added
            anchor=west}
]
\addplot[
    color=blue,
    mark=square,
    line width=2pt,
    dotted
    ]
    coordinates {
    (0,0)(1.48,2)(2.76,4)(4.02,6)(5.22,8)(6.43,10)(7.76,12)
    };
\addplot[
    color=red,
    mark=square,
    line width=2pt,
    dotted
    ]
    coordinates {
    (0,0)(1.66,2)(3.21,4)(4.76,6)(6.32,8)(7.81,10)(9.47,12)
    };
\addplot[
    color=green,
    mark=square,
    line width=2pt,
    dotted
    ]
    coordinates {
    (0,12)(1.53,10)(2.94,8)(4.53,6)(5.95,4)(7.36,2)(8.83,0)
    };
\addplot[
    color=black,
    mark=square,
    line width=2pt,
    dotted
    ]
    coordinates {
    (0,12)(1.80,10)(3.46,8)(4.94,6)(6.49,4)(8.20,2)(9.85,0)
    };
\legend{Trail 1 (fast and $+$), Trail 2 (slow and $+$), Trail 3 (fast and $-$), Trail 4 (slow and $-$)}
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}

informação relacionada