在类似于 gnuplot 的 pgfplots 中指定不同坐标系中的 x 和 y

在类似于 gnuplot 的 pgfplots 中指定不同坐标系中的 x 和 y

在 gnuplot 中您可以指定多个坐标系中的位置: First, Second, Graph, Screen, Character

pgfplots 中的等价物是什么?我知道以下内容:

  • Firstaxis cs:
  • Second:(axis cs:手册建议使用两个相互叠置的轴)
  • Graphrel axis cs:
  • Screen:可以借助barycentric cs:
    \begin{axis}[name=s]
    \end{axis}
    \coordinate (topright) at (s.outer north east);
    \coordinate (bottomleft) at (s.outer south west);
    \node at (barycentric cs:bottomleft=0.5,topright=0.5) {CENTER};
    (可能不是最方便的方式,并且仅在之外可用\begin{axis}\end{axis}

如何在不同的系统中给出 x 和 y 坐标?

例子:

\documentclass{standalone}

\usepackage{pgfplots}
\usepackage{pgfplotstable} % For \pgfplotstableread
\pgfplotsset{compat=1.10}

\pgfplotstableread{
0.01    1.00
0.02    2.00
0.03    3.00
0.04    4.00
0.05    5.00
}\datatable

\begin{document}
\begin{tikzpicture}
\begin{axis}[ymin=0, ymax=6]
\addplot table  {\datatable};
\node at (axis cs:0.02,3) {A};
\node at (rel axis cs:0.66,0.5){B};
% \node at (rel axis cs:0.66, axis cs:1){C}; % HOW CAN I DO THIS?
\end{axis}
\end{tikzpicture}
\end{document}

更新

我发现有很多方法可以使用

  • 不同的坐标系(默认(即未指定):)axis description cs
  • 预定义节点,
  • 预定义锚点,或
  • 计算值。

使用预定义节点的示例current axis

\usetikzlibrary{calc}
\coordinate (topleft) at ($(current axis.north west) + (-1.3cm,0.3cm)$);

这些内容将在以下章节中描述pgfplots手动的:

  • 4.9.1 轴描述的位置
    坐标系:axis description csticklabel cs
  • 4.9.2 轴描述的对齐
    锚点near ticklabelnear ticklabel opposite
  • 4.14.2 访问计算的限制范围
    \pgfkeysvalueof{/pgfplots/xmin}
    \pgfkeysvalueof{/pgfplots/xmax}
    \pgfkeysvalueof{/pgfplots/ymin}
    \pgfkeysvalueof{/pgfplots/ymax}
    \pgfkeysvalueof{/pgfplots/width}
    \pgfkeysvalueof{/pgfplots/height}
  • 4.17.1 访问图形元素中的轴坐标
    坐标 系统axis csaxis direction cs节点rel axis cs
    current plot begin current plot end
  • 4.17.2 将节点放置在绘图坐标上
    \tikz\pos={<fraction>}
  • 4.19 对齐选项(!)带 锚点的
    节点current axis
    center,,,,,,outer centerouter north westnorth westleft of north westorigin,,left of origin...

  • 4.20 图片尺寸:边界框和裁剪
    \pgfresetboundingboxtrim

  • 4.24 变换坐标系
    坐标系data cs
  • 5.7 分组图
    c<x>r<x>.center/left/right

相关章节前列腺素手动的:

  • 17.5.1 使用锚点定位节点-center, north west, north, north east, east, south east, south, south west, west, base, mid
  • 17.5.2 基本放置选项-above/below/right/left, above left/right, below left/right
  • 17.5.3 高级安置选项-\usetikzlibrary{positioning}

答案1

据我所知,您无法处理不同坐标系的组件。事实上,我认为这不太合理。但是,您可以使用正交标识符,例如

\documentclass[border=5mm]{standalone}

\usepackage{pgfplots}
\usepackage{pgfplotstable} % For \pgfplotstableread
\pgfplotsset{compat=1.10}

\pgfplotstableread{
0.01    1.00
0.02    2.00
0.03    3.00
0.04    4.00
0.05    5.00
}\datatable

\begin{document}
\begin{tikzpicture}
\begin{axis}[ymin=0, ymax=6]
\addplot table  {\datatable};
\node at (axis cs:0.02,3) {A};
\node at (rel axis cs:0.66,0.5){B};
\node at ({rel axis cs:0.66,0}|-{axis cs:0,1}){C}; %<=== Like this
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容