在 gnuplot 中您可以指定多个坐标系中的位置:
First, Second, Graph, Screen, Character
。
pgfplots 中的等价物是什么?我知道以下内容:
First
:axis cs:
Second
:(axis cs:
手册建议使用两个相互叠置的轴)Graph
:rel 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 cs
,ticklabel cs
- 4.9.2 轴描述的对齐
锚点near ticklabel
,near 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 cs
和axis direction cs
节点rel axis cs
current plot begin
current plot end
- 4.17.2 将节点放置在绘图坐标上
\tikz\pos={<fraction>}
4.19 对齐选项(!)带 锚点的
节点current axis
center
,,,,,,outer center
outer north west
north west
left of north west
origin
,,left of origin
...4.20 图片尺寸:边界框和裁剪
\pgfresetboundingbox
,trim
- 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}