最初,我想从最后一个点的 y 值中减去直线的 y 值,并在图上显示这个差值。在浏览了这个网站上的许多问题后,我尝试实现这。这让我明白了部分道理,但在测试时\pgfplotsconvertunittocoordinate
我发现计算结果有大约 2 个偏差。我愿意听取任何关于改变我的策略的建议,但为什么我的计算结果有一点偏差?
此代码...
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.csv}
s,t
5,430000
6,425209.22
\end{filecontents*}
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\usetikzlibrary{calc}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[title={Test},xmajorgrids=true,ymajorgrids=true,
scaled y ticks=false,y tick label style={/pgf/number format/fixed},ymin=355000,xtick=data,
]
\addplot[mark=*,thick,black] table[col sep=comma, x=s, y=t] {\jobname.csv}
coordinate [pos=0] (start)
coordinate [pos=1] (end);
\coordinate (no) at (axis cs:5,356070);
\draw[red,dashed] (no) -- (no -| end);
\draw[<->,dashed,shorten <=3pt]
let \p1 = (end), \p2 = (no) in
(end) -- node[anchor=east]{\pgfplotsconvertunittocoordinate{y}{\y1}\pgfplotscoordmath{y}{datascaletrafo inverse to fixed}{\pgfmathresult}\pgfmathprintnumber[fixed,precision=2]{\pgfmathresult}} (no -| end);
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
...我预计节点读取的是 425,209.22。我使用了 Overleaf,它会Package: pgfplots 2017/06/05 v1.15 Data Visualization (1.15)
在日志中报告。