我根据数据列的值定义了散点图的颜色。除了值本身之外,我还绘制了平均值,平均值有单独的列。但是,平均值图和图例的颜色不匹配。第一个类(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}
结果: