我想在同一个图中绘制两个数据集的数据标记和线性回归,并为一个数据/回归对添加图例条目:这是我当前的状态:
\documentclass{article}
\usepackage{pgfplotstable}
\pgfplotstableread[col sep = comma]{
x, y1, y2,
1, 1.0, 3.0,
2, 2.2, 6.3,
4, 3.9, 10.0,
8, 8.1, 25.0,
} \data
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[legend pos=north west,
legend image post style={solid}
]
\addplot[only marks,mark=o,color=red] table [x=x, y=y1] {\data};
\addplot[no markers,color=red,forget plot] table [x=x, y={create col/linear regression={y=y1}}] {\data};
\addlegendentry{y1}
\addplot[only marks,mark=square,color=blue] table [x=x, y=y2]{\data};
\addplot[no markers,color=blue,forget plot] table [x=x, y={create col/linear regression={y=y2}}] {\data};
\addlegendentry{y2}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
它创建了下面的图像:
我想为每个图例条目添加一条线和一个标记,但目前只显示标记。我怎样才能绘制线条?当我将描述的图更改为线图(即,将“忘记图”选项向上移动一行)时,我想我不能根据图例中的每个条目添加不同的标记,可以吗?谢谢,Juhui
答案1
您可以使用以下命令更改用于生成图例图像的绘图选项legend image post style
:
\documentclass[border=5mm]{standalone}
\usepackage{pgfplotstable}
\pgfplotstableread[col sep = comma]{
x, y1, y2,
1, 1.0, 3.0,
2, 2.2, 6.3,
4, 3.9, 10.0,
8, 8.1, 25.0,
} \data
\begin{document}
\begin{tikzpicture}
\begin{axis}[legend pos=north west,
legend image post style={solid}
]
\addplot[only marks,mark=o,color=red, legend image post style={sharp plot}] table [x=x, y=y1] {\data};
\addplot[no markers,color=red,forget plot] table [x=x, y={create col/linear regression={y=y1}}] {\data};
\addlegendentry{y1}
\addplot[only marks,mark=square,color=blue, legend image post style={sharp plot}] table [x=x, y=y2]{\data};
\addplot[no markers,color=blue,forget plot] table [x=x, y={create col/linear regression={y=y2}}] {\data};
\addlegendentry{y2}
\end{axis}
\end{tikzpicture}
\end{document}