Cómo cambiar el color o la forma de los marcadores individuales

Cómo cambiar el color o la forma de los marcadores individuales

soy yo otravez :)

Estoy intentando hacer una trama usando pgfplots. Sin embargo, necesito que los marcadores individuales se vean diferentes del resto, por ejemplo, en el siguiente ejemplo quiero que el marcador de 'a' para 1970 y el de 'b' para 1990 sean una x, y el resto sean bolas ( *). (Me encantaría que me dijeras una forma de distinguirlos por color; espero que entiendas lo que quiero decir). ¿Cómo cambio estos marcadores individuales? Si ya hay un hilo sobre esto que no he encontrado, házmelo saber.

Mi ejemplo es:

\begin{figure}
\centering
\begin{tikzpicture}
  \begin{axis}[width=\textwidth, xlabel = year,%\,/\,Tsd. Tonnen,
      xmin = 1965, xmax = 2015,
      xtick={1960, 1970, 1980, 1990, 2000, 2010},
      x tick label style={/pgf/number format/1000 sep=},
      ylabel = example,
      ymin = 1000, ymax = 5000,
      y tick label style={/pgf/number format/1000 sep=},]
      \addplot 
      coordinates {
(1960,  1650)
(1970,  2550)
(1980,  4050)
(1990,  4550)
(2000,  3550)
(2010,  3750)
         };
       \addplot 
      coordinates {
(1960,  1600)
(1970,  2500)
(1980,  4000)
(1990,  4500)
(2000,  3500)
(2010,  3700)
         };
\legend{a, b}
   \end{axis}
\end{tikzpicture}
\vspace*{0.4cm} 
\caption[Example.]{Example.}
\end{figure}

Y la imagen se ve así:

ingrese la descripción de la imagen aquí

¡Gracias de antemano! :)

Respuesta1

Porque pensé que querías combinar las dos características de tuotra preguntay este lo usé como comienzo.

Para lograr lo que desea lograr, puede utilizar la scatter/classesfunción. Sobre cómo funciona, eche un vistazo a los comentarios en el código.

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{
        % I assume you *never* want to use the `1000 sep',
        % so remove it *everywhere* with this one call
        /pgf/number format/1000 sep=,
    }
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            xmin=1965,
            xmax=2015,
            xlabel=year,
            xtick={1960,1970,...,2010},
            ymin=1000,
            ymax=5000,
            ylabel=example,
            % -----------------------------------------------------------------
            % make use of the "scatter" feature and say that the "classes" are
            % given explicitly in symbolic notation
            scatter,
            point meta=explicit symbolic,
            % define as many classes as you need and provide the style to each class
            % (so the "non-default" classes can be either noticed, I changed
            %  also changed the marker size)
            scatter/classes={
                a={},       % empty argument means: use the default style
                b={mark=triangle*,orange,mark size=5pt},
                c={mark=x,green,mark size=5pt}
            },
        ]
            % I changed your coordinates to a table, because than the scatter
            % classes are to add much easier
            %
            % Also I just used an empty line to "break" the connecting line
            % (instead of adding a dummy coordinate with a `NaN' value)
            \addplot table [x=year,y=value,meta=label] {
                year    value   label
                1960    1650    a
                1970    2550    b
                1980    4050    a
                1990    4550    a

                2000    3550    a
                2010    3750    a
             };
            \addplot table [x=year,y=value,meta=label] {
                year    value   label
                1960    1600    a
                1970    2500    a
                1980    4000    a
                1990    4500    c

                2000    3500    a
                2010    3700    a
             };

            % we have to adjust the legend, because in `scatter/classes' this
            % works a bit different
            \legend{
                A,  % class "a" of first `\addplot'
                ,   % class "b" of first `\addplot'     <-- you don't want to show
                ,   % class "c" of first `\addplot'     <-- you don't want to show
                B,  % class "a" of second `\addplot'
%                ,   % ...
%                ,   % ...
            }
        \end{axis}
    \end{tikzpicture}
\end{document}

imagen que muestra el resultado del código anterior

información relacionada