我有以下代码:
\begin{figure}[p]
\centering \begin{tikzpicture}
\begin{axis}[
use units,
width=15cm, height=8cm, % size of the image
grid = major,
grid style={dashed, gray!30},
%xmode=log,log basis x=10,
%ymode=log,log basis y=10,
xmin=0, % start the diagram at this x-coordinate
ymin=0, % start the diagram at this y-coordinate
%/pgfplots/xtick={0,5,...,60}, % make steps of length 5
%extra x ticks={23},
%extra y ticks={0.507297},
axis background/.style={fill=white},
ylabel=Time,
xlabel=Number of Datapoints (n),
y unit=s,y unit prefix=m,
tick align=outside]
% import the correct data from a CSV file
\addplot table [col sep=comma,trim cells=true,y=user] {datasets/mergesort.csv};
\end{axis} \end{tikzpicture}
\caption{Mergesort Run Time for Sorting Random Data}
\label{fig:merge_sort_from_csv} \end{figure}
我得到的是一张图表,其中每个点都用一个蓝点和一条连接这些点的蓝线表示。
如果我改变路线
\addplot table [col sep=comma,trim cells=true,y=user] {datasets/mergesort.csv};
到
\addplot[red] table [col sep=comma,trim cells=true,y=user] {datasets/mergesort.csv};
我得到的是一条没有点的直红线。
我怎样才能获得与以前相同的效果(线和点),但颜色为红色?
答案1
如果命令中没有任何样式键\addplot
,则使用默认值cycle list
( color
,如 v1.11 版本第 4.7.7 节所述pgfplots
手动的) 用来:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:1]
\addplot {x};
\addplot {x^2};
\addplot {x^3};
\addplot {x^4};
\end{axis}
\end{tikzpicture}
\end{document}
一旦指定了任何样式键,如 中所示\addplot[red] <...>;
,默认循环列表将不再用于该图(但请注意,图中的“点”cycle list
仍然被“消耗”,如示例所示):
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:1]
\addplot[red] {x}; % added [red] here
\addplot {x^2};
\addplot {x^3};
\addplot {x^4};
\end{axis}
\end{tikzpicture}
\end{document}
替代的绘图命令\addplot+
允许用户附加样式选项,而不会覆盖 所设置的所有样式cycle list
。例如:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:1]
\addplot+[red] {x};
\addplot {x^2};
\addplot {x^3};
\addplot {x^4};
\end{axis}
\end{tikzpicture}
\end{document}
因此,对于所需的绘图样式(红色,带有相同颜色的填充圆形标记),您可以使用任一方法:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:1]
\addplot[red,mark=*] {x}; % red and filled circular marker, OR
\addplot+[red,mark=*,mark options={fill=red}] {x^2}; % override cycle list style
\addplot {x^3};
\addplot {x^4};
\end{axis}
\end{tikzpicture}
\end{document}
至于您在评论中的请求,可用的标记和线条样式的完整列表pgfplots
位于手册的第 4.7 节中。第 4.7.1 节列出了标记及其样式的可用选项,而第 4.7.2 节对线条样式进行了相同的说明。
除了为每个单独的绘图命令指定样式外,还可以使用用户定义或预定义的cycle list
s 来设置每个连续绘图命令的样式。cycle list
第一个示例中显示的是默认样式。以下是另一个预定义的cycle list
, exotic
:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:1,cycle list name=exotic]
\addplot {x};
\addplot {x^2};
\addplot {x^3};
\addplot {x^4};
\end{axis}
\end{tikzpicture}
\end{document}
手册的第 4.7.7 节介绍了预定义cycle list
s 的其他选择,该节的后半部分介绍了定义您自己的cycle list
s 的语法。用户定义cycle list
可以为每个文档定义一次,并用于该文档中的所有图。这样,如果您改变了对样式的想法,只需更新一次定义,所有图都会相应更新。