一些评论

一些评论

我设置了一个新的颜色列表,但它不在我的代码中(如下所示)。每组标记和自己的线条都应该具有列表中的一种颜色。这是我得到的结果:

在此处输入图片描述

\documentclass[a4paper,twoside,12pt]{book}

\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}
\usepackage{pgfplotstable, pgfplots}

\definecolor{limegreen}{rgb}{0.2, 0.8, 0.2}
\pgfplotsset{
   /pgfplots/bar  cycle  list/.style={/pgfplots/cycle  list={%
        {blue,fill=blue!30,draw=blue!50},%
        {red,fill=red!40,draw=red!60},%
        {limegreen,fill=limegreen!40,draw=limegreen!60},%
        {violet,fill=violet!30,draw=violet!50},%
     }
   },
}


\begin{filecontents*}{WHC.dat}
0   0   0   0
2   2.2 3.9 6.3
5   5.1 10.5    15.4
10  10.4    19  28
\end{filecontents*}

\newcommand{\WHCplot}[1]{
    \addplot table [only marks, x index=0, y index=#1]{WHC.dat};%
    \addplot[domain=0:10] {#1*x};%
}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
width=12cm, height=10cm]
\pgfplotsinvokeforeach{1,2,3}{\WHCplot{#1}}
\end{axis}
\end{tikzpicture}

\end{document}

答案1

\documentclass[a4paper,twoside,12pt]{book}

\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}
\usepackage{pgfplotstable, pgfplots}

\definecolor{limegreen}{rgb}{0.2, 0.8, 0.2}
\pgfplotsset{
  cycle list={%
    {blue!50,mark=square*,mark options={fill=blue!40}},%
    {red!60,mark=*,mark options={fill=red!40}},%
    {limegreen!60,mark=diamond*,mark options={fill=limegreen!40}},%
    {violet!50,mark=triangle*,mark options={fill=violet!30}},%
  }
}

\begin{filecontents*}{WHC.dat}
0   0   0   0
2   2.2 3.9 6.3
5   5.1 10.5    15.4
10  10.4    19  28
\end{filecontents*}

\newcommand{\WHCplot}[1]{
    \addplot+ table [only marks, x index=0, y index=#1]{WHC.dat};%
}
\newcommand{\WHCploti}[1]{
    \addplot+[no marks,domain=0:10] {#1*x};%
}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
width=12cm, height=10cm
]
\pgfplotsinvokeforeach{1,2,3}{\WHCplot{#1}}
\pgfplotsset{cycle list shift=-3}
\pgfplotsinvokeforeach{1,2,3}{\WHCploti{#1}}
\end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

一些评论

  • 在您的代码中,您设置了一种样式bar cycle list/.style但从未使用它。我直接改为cycle list={...}
  • cycle list={}指定颜色、线条样式、标记和标记样式。
  • 您需要,\addplot+因为您在\addplots 中使用了 []。
  • 由于每个组(标记和线条)应采用相同的颜色,因此我使用了两个循环和 \pgfplotsset{cycle list shift=-3}。如果这不是预期的,请恢复到只有一个循环的设置。

相关内容