读完表格并按要求绘制数据后,我需要在图表中添加一些注释。这些注释需要手动添加,因为它们不包含在我从同事那里收到的数据库导出中。
在当前的数据/表格格式中,仅需要注释从第一行表格读取的数据。为了实现这一点,我想出了两种方法:
- 手动将 a 放置
\node
在所需坐标处(我的 MWE 中的蓝色注释):方法简单,但我无法使用表中的坐标。可以使用以下方法从表中读取元素pgfplotstable 的\pgfplotstablegetelem
,但我还没弄清楚如何使用读取的值以供以后使用。 node
使用 绘制数据后放置 a\addplot
。我的 MWE 的相应部分受到以下启发:杰克的回答,但将节点放置在绘图的末尾,而不是开头。
\documentclass{article}
\usepackage{filecontents}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\begin{filecontents}{sample_data.csv}
x y
0.5 0
0.5 0.7
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin = 0, xmax = 1, ymin = 0, ymax = 1]
\pgfplotstableread{sample_data.csv}\mydata;
\addplot+[mark=none, dashed, gray] table [
x = x,
y = y,
] {\mydata};
\node[blue, anchor=south west] at (0.5, 0) {a}; % <-- '0.5, 0' coordinates of node (blue) should be dynamically read from table (first row)
\addplot+[red, mark=none, draw=none] table[x=x, y=y] {\mydata} node[anchor=south west] {a}; % <-- places node (red) at last point of table, but should be placed at first point
\end{axis}
\end{tikzpicture}
\end{document}
答案1
改编
- 我刚刚申请杰克的回答您链接到:
您可以使用可选键沿着情节线移动节点
[pos=<fraction>]
。
结果
代码
\documentclass{article}
\usepackage{filecontents}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\begin{filecontents}{sample_data.csv}
x y
0.5 0
0.5 0.7
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin = 0, xmax = 1, ymin = 0, ymax = 1]
\pgfplotstableread{sample_data.csv}\mydata;
\addplot+[mark=none, dashed, gray] table [
x = x,
y = y,
] {\mydata};
\addplot+[ mark=none, draw=none] table[x=x, y=y] {\mydata} node[anchor=south west, pos=0, blue] {a} node[anchor=south west, pos=1, red] {b};
\end{axis}
\end{tikzpicture}
\end{document}