我想在 Tikz 图片中显示 y 分量均为负值的点。这本身没有问题,但我希望 y 轴比 x 轴略高一点以强调负值。
请参阅代码下方的屏幕截图。
在另一个具有不同数据的文件中,我使用Jake 移动坐标轴的方法。然而,在下面的文件中,增加 y 交叉坐标 ( axis line origin={0,THIS}
) 只会在 Tikz 图片前添加奇怪的空白。
没有警告(除了文件内容) 显示。
造成这种情况的原因是什么?我该如何解决?
(注意:只要能产生我想要的结果,我也愿意接受不再涉及 Jake 的代码的建议。)
梅威瑟:
\documentclass[tikz,border=2pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\usepackage{filecontents}
\usepackage[utf8]{luainputenc}
% Author: Jake <https://tex.stackexchange.com/users/2552/jake>
% Link: https://tex.stackexchange.com/a/62431/38074
% License: CC BY-SA 3.0
\pgfplotsset{
axis line origin/.style args={#1,#2}{
x filter/.append code={ % Check for empty or filtered out numbers
\ifx\pgfmathresult\empty\else\pgfmathparse{\pgfmathresult-#1}\fi
},
y filter/.append code={
\ifx\pgfmathresult\empty\else\pgfmathparse{\pgfmathresult-#2}\fi
},
xticklabel=\pgfmathparse{\tick+#1}\pgfmathprintnumber{\pgfmathresult},
yticklabel=\pgfmathparse{\tick+#2}\pgfmathprintnumber{\pgfmathresult}
}
}
\begin{filecontents*}{data.csv}
Data
t;x;y
0.000000000E0;6.348840913E-4;9.925120686E-4
8.333333333E-3;5.838627285E-4;4.724618695E-4
1.666666667E-2;1.094161960E-3;-2.700310368E-3
2.500000000E-2;7.550411425E-4;-5.097581518E-3
3.333333333E-2;6.794111604E-4;-9.011432646E-3
4.166666667E-2;3.461038282E-4;-1.562674575E-2
5.000000000E-2;1.282057031E-4;-1.909622209E-2
5.833333333E-2;-3.401256682E-4;-2.518409682E-2
1.408333333E0;-3.104116765E-2;-1.739549231E0
1.416666667E0;-3.322785461E-2;-1.740279419E0
1.425000000E0;-3.599135975E-2;-1.742337105E0
1.433333333E0;-3.808925614E-2;-1.744682891E0
1.541666667E0;-7.108984101E-2;-1.839024730E0
1.550000000E0;-7.297102460E-2;-1.857275769E0
1.558333333E0;-7.571494352E-2;-1.870979850E0
1.566666667E0;-7.854608723E-2;-1.892338940E0
1.575000000E0;-8.274961995E-2;-1.897014288E0
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{ticks=none}
\begin{axis}[
axis x line=right,
axis y line=left,
axis lines=middle,
axis line origin={0,0.5},
xlabel=Time,
ylabel=x,
xticklabel style={inner xsep=0pt, anchor=north west},
xtick={0},
after end axis/.code={
\path (axis cs:0,0)
node [anchor=south east,xshift=-0.075cm] {0};
}
]
\addplot[color=red,ultra thick] table [
skip first n=1,
col sep=semicolon,
x=t,
y=y
] {data.csv};
\end{axis}
\end{tikzpicture}
\end{document}
目前结果:
我想要的结果:
答案1
我不确定你到底想要什么结果,但如果你只想将纵坐标线向上延伸一点,你可以设置enlarge y limits={upper, value=0.2}
。值为0.2
将轴延伸 20%。
\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\usepackage{filecontents}
\begin{filecontents*}{data.csv}
Data
t;x;y
0.000000000E0;6.348840913E-4;9.925120686E-4
8.333333333E-3;5.838627285E-4;4.724618695E-4
1.666666667E-2;1.094161960E-3;-2.700310368E-3
2.500000000E-2;7.550411425E-4;-5.097581518E-3
3.333333333E-2;6.794111604E-4;-9.011432646E-3
4.166666667E-2;3.461038282E-4;-1.562674575E-2
5.000000000E-2;1.282057031E-4;-1.909622209E-2
5.833333333E-2;-3.401256682E-4;-2.518409682E-2
1.408333333E0;-3.104116765E-2;-1.739549231E0
1.416666667E0;-3.322785461E-2;-1.740279419E0
1.425000000E0;-3.599135975E-2;-1.742337105E0
1.433333333E0;-3.808925614E-2;-1.744682891E0
1.541666667E0;-7.108984101E-2;-1.839024730E0
1.550000000E0;-7.297102460E-2;-1.857275769E0
1.558333333E0;-7.571494352E-2;-1.870979850E0
1.566666667E0;-7.854608723E-2;-1.892338940E0
1.575000000E0;-8.274961995E-2;-1.897014288E0
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{ticks=none}
\begin{axis}[
axis lines=middle,
enlarge y limits={upper, value=0.2},
xlabel=Time,
ylabel=x,
xticklabel style={inner xsep=0pt, anchor=west},
xtick={0},
after end axis/.code={
\node at (axis cs:0,0) [anchor=east] {0};
}
]
\addplot[color=red,ultra thick] table [
skip first n=1,
col sep=semicolon,
x=t,
y=y
] {data.csv};
\end{axis}
\end{tikzpicture}
\end{document}