散点图:图例和线条颜色不匹配

散点图:图例和线条颜色不匹配

我根据数据列的值定义了散点图的颜色。除了值本身之外,我还绘制了平均值,平均值有单独的列。但是,平均值图和图例的颜色不匹配。第一个类(gree)的颜色重复了,因为它共享相同的值(0)。即使指定也\addplot[color=black]无济于事,只有标记会改变颜色,而线条不会改变。

在此处输入图片描述

梅威瑟:

\documentclass{scrbook}

\usepackage{siunitx}
\usepackage{xcolor}
    \definecolor{mgelb}{RGB}{255, 187, 0}
    \definecolor{mblau}{RGB}{10, 59, 104}
    \definecolor{mturkis}{RGB}{0, 171, 183}
    \definecolor{mrot}{RGB}{255, 70, 70}
    \definecolor{mrot2}{RGB}{184, 0, 0}
    \definecolor{mgrun}{RGB}{41, 175, 0}
    \definecolor{mlila}{RGB}{136, 55, 155}
    \definecolor{mgrau1}{RGB}{230, 230, 230}
    \definecolor{mgrau2}{RGB}{204, 204, 204}
    \definecolor{mgrau3}{RGB}{153, 153, 153}
\usepackage{pgfplots}\pgfplotsset{compat=1.16}
\usepackage{pgfplotstable}
\usepgfplotslibrary{groupplots}
\pgfplotsset{legend cell align={left}, legend style={/tikz/every even column/.append style={column sep=0.3cm}}}

\begin{document}

    \pgfkeys{/pgf/number format/read comma as period}

    \pgfplotstableread{
        Quadrant    Bereich Nummer  Rz_m    Rz_m_B  Rz_m_Q
        0       0   1   67,9    51,5 51,5
        0       0   2   44,17   nan nan
        0       0   3   44,3    nan nan
        0       0   4   63,43   nan nan
        0       0   5   49,87   nan nan
        0       0   6   39,33   nan nan
        I       i   1   44,33   50,55 54,24
        I       i   2   50,97   nan nan
        I       i   3   55,9    nan nan
        I       i   4   51,33   nan nan
        I       i   5   58,23   nan nan
        I       i   6   44,53   nan nan
        I       a   1   61,17   54,9 nan
        I       a   2   69,37   nan nan
        I       a   3   66,2    nan nan
        I       a   4   44,2    nan nan
        I       a   5   64,77   nan nan
        I       a   6   39,93   nan nan
        II  i   1   63,93   nan 53,21
        II  i   2   47,37   nan nan
        II  i   3   46,9    nan nan
        II  i   4   34,73   nan nan
        II  i   5   41,27   nan nan
        II  i   6   48,23   nan nan
        II  a   1   50,03   nan nan
        II  a   2   47,4    nan nan
        II  a   3   58,67   nan nan
        II  a   4   71,57   nan nan
        II  a   5   57,6    nan nan
        II  a   6   70,77   nan nan
        III i   1   37,5    nan 48,25
        III i   2   55,5    nan nan
        III i   3   41,2    nan nan
        III i   4   48,07   nan nan
        III i   5   56,8    nan nan
        III i   6   49,77   nan nan
        III a   1   58,3    nan nan
        III a   2   47,07   nan nan
        III a   3   50,53   nan nan
        III a   4   51,2    nan nan
        III a   5   32,67   nan nan
        III a   6   50,37   nan nan
        IV  i   1   51,6    nan 55,22
        IV  i   2   45,53   nan nan
        IV  i   3   60,27   nan nan
        IV  i   4   71      nan nan
        IV  i   5   59,63   nan nan
        IV  i   6   48,7    nan nan
        IV  a   1   40,87   nan nan
        IV  a   2   44,43   nan nan
        IV  a   3   44      nan nan
        IV  a   4   60,03   nan nan
        IV  a   5   63,73   nan nan
        IV  a   6   72,8    nan nan
    }\data


    \begin{figure}
        \centering\small
        \begin{tikzpicture}
        \begin{groupplot}[
                group style={group size=2 by 1, ylabels at=edge left, horizontal sep=2cm},
                xtick=data,
                ymin=0,
                ylabel=Oberflächenrauheit $R_{z}$ in \si{\um},
                legend pos=south west,
                legend columns=-1,
                width=0.55\textwidth,
                height=0.6\textwidth,
                clip mode=individual
        ]
                \nextgroupplot[
                        symbolic x coords={0, i, a},
                        xlabel={Bereich},
                        scatter/classes={0={mgrun}, I={mblau, xshift=-1.4mm}, II={mgelb, xshift=1.5mm}, III={mturkis, xshift=-3mm}, IV={mrot2, xshift=3mm}}
                ]

                    \addplot[scatter, only marks] table[meta=Quadrant, scatter src=explicit symbolic, x=Bereich, y=Rz_m] {\data};

                    \addplot[black, mark=triangle, mark options={black, scale=2}, scatter] table[scatter src=explicit symbolic, x=Bereich, y=Rz_m_B] {\data};

                    \legend{0, I, II, III, IV, $\overline{R_{z}}$}

                \nextgroupplot[
                        symbolic x coords={0, I, II, III, IV},
                        xlabel={Quadrant},
                        scatter/classes={0={mlila}, i={mrot, xshift=-1mm}, a={mgrau3, xshift=1mm}},
                ]
                    \addplot[scatter, only marks] table[meta=Bereich, scatter src=explicit symbolic, x=Quadrant, y=Rz_m, y error=Rz_s] {\data};

                    \addplot[black,
                            mark=triangle,
                            mark options={scale=2},
                            scatter,
                            error bars/.cd,
                            y dir=both,
                            y explicit
                    ] table[scatter src=explicit symbolic, x=Quadrant, y=Rz_m_Q] {\data};

                    \legend{0, i, a, $\overline{R_{z}}$}
        \end{groupplot}
        \end{tikzpicture}
\end{figure}

\end{document}

答案1

您的 R z图定义为scatter,因此它们采用散点图类别的属性,包括颜色。如果您将它们定义为带point meta坐标的常规图,则图例将使用各个绘图命令的属性。

梅威瑟:

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}
\usepackage{xcolor}
    \definecolor{mgelb}{RGB}{255, 187, 0}
    \definecolor{mblau}{RGB}{10, 59, 104}
    \definecolor{mturkis}{RGB}{0, 171, 183}
    \definecolor{mrot}{RGB}{255, 70, 70}
    \definecolor{mrot2}{RGB}{184, 0, 0}
    \definecolor{mgrun}{RGB}{41, 175, 0}
    \definecolor{mlila}{RGB}{136, 55, 155}
    \definecolor{mgrau1}{RGB}{230, 230, 230}
    \definecolor{mgrau2}{RGB}{204, 204, 204}
    \definecolor{mgrau3}{RGB}{153, 153, 153}
\usepackage{pgfplots}\pgfplotsset{compat=1.15}
\usepackage{pgfplotstable}
\usepgfplotslibrary{groupplots}
\pgfplotsset{legend cell align={left}, legend style={/tikz/every even column/.append style={column sep=0.3cm}}}

\begin{document}

    \pgfkeys{/pgf/number format/read comma as period}

    \pgfplotstableread{
        Quadrant    Bereich Nummer  Rz_m    Rz_m_B  Rz_m_Q
        0       0   1   67,9    51,5 51,5
        0       0   2   44,17   nan nan
        0       0   3   44,3    nan nan
        0       0   4   63,43   nan nan
        0       0   5   49,87   nan nan
        0       0   6   39,33   nan nan
        I       i   1   44,33   50,55 54,24
        I       i   2   50,97   nan nan
        I       i   3   55,9    nan nan
        I       i   4   51,33   nan nan
        I       i   5   58,23   nan nan
        I       i   6   44,53   nan nan
        I       a   1   61,17   54,9 nan
        I       a   2   69,37   nan nan
        I       a   3   66,2    nan nan
        I       a   4   44,2    nan nan
        I       a   5   64,77   nan nan
        I       a   6   39,93   nan nan
        II  i   1   63,93   nan 53,21
        II  i   2   47,37   nan nan
        II  i   3   46,9    nan nan
        II  i   4   34,73   nan nan
        II  i   5   41,27   nan nan
        II  i   6   48,23   nan nan
        II  a   1   50,03   nan nan
        II  a   2   47,4    nan nan
        II  a   3   58,67   nan nan
        II  a   4   71,57   nan nan
        II  a   5   57,6    nan nan
        II  a   6   70,77   nan nan
        III i   1   37,5    nan 48,25
        III i   2   55,5    nan nan
        III i   3   41,2    nan nan
        III i   4   48,07   nan nan
        III i   5   56,8    nan nan
        III i   6   49,77   nan nan
        III a   1   58,3    nan nan
        III a   2   47,07   nan nan
        III a   3   50,53   nan nan
        III a   4   51,2    nan nan
        III a   5   32,67   nan nan
        III a   6   50,37   nan nan
        IV  i   1   51,6    nan 55,22
        IV  i   2   45,53   nan nan
        IV  i   3   60,27   nan nan
        IV  i   4   71      nan nan
        IV  i   5   59,63   nan nan
        IV  i   6   48,7    nan nan
        IV  a   1   40,87   nan nan
        IV  a   2   44,43   nan nan
        IV  a   3   44      nan nan
        IV  a   4   60,03   nan nan
        IV  a   5   63,73   nan nan
        IV  a   6   72,8    nan nan
    }\data


    \begin{figure}
        \centering\small
        \begin{tikzpicture}
        \begin{groupplot}[
                group style={group size=2 by 1, ylabels at=edge left, horizontal sep=2cm},
                xtick=data,
                ymin=0,
                ylabel=Oberflächenrauheit $R_{z}$ in \si{\um},
                legend pos=south west,
                legend columns=-1,
                width=0.55\textwidth,
                height=0.6\textwidth,
                clip mode=individual
        ]
                \nextgroupplot[
                        symbolic x coords={0, i, a},
                        xlabel={Bereich},
                        scatter/classes={0={mgrun}, I={mblau, xshift=-1.4mm}, II={mgelb, xshift=1.5mm}, III={mturkis, xshift=-3mm}, IV={mrot2, xshift=3mm}}
                ]

                    \addplot[scatter, only marks] table[meta=Quadrant, scatter src=explicit symbolic, x=Bereich, y=Rz_m] {\data};

                    \addplot[black, mark=triangle, mark options={scale=2}] table[point meta=explicit symbolic, x=Bereich, y=Rz_m_B] {\data};

                    \legend{0, I, II, III, IV, $\overline{R_{z}}$}

                \nextgroupplot[
                        symbolic x coords={0, I, II, III, IV},
                        xlabel={Quadrant},
                        scatter/classes={0={mlila}, i={mrot, xshift=-1mm}, a={mgrau3, xshift=1mm}},
                ]
                    \addplot[scatter, only marks] table[meta=Bereich, scatter src=explicit symbolic, x=Quadrant, y=Rz_m, y error=Rz_s] {\data};

                    \addplot[black,
                            mark=triangle,
                            mark options={scale=2},
                    ] table[point meta=explicit symbolic, x=Quadrant, y=Rz_m_Q] {\data};

                    \legend{0, i, a, $\overline{R_{z}}$}
        \end{groupplot}
        \end{tikzpicture}
\end{figure}

\end{document}

结果:

在此处输入图片描述

相关内容