在添加的图片的右下角,你会看到 x 和 y 刻度标签几乎互相接触。在我看来,这并不美观。
您能想到解决这个问题有什么好的方法吗?
我的一个不满意的解决方案是避免在图中写出数字 1.2。我不太喜欢这个解决方案,因为你应该在科学论文的图中看到边界。
还有其他解决方案吗?
我有很多图表,但并不是所有图表都显示了这个问题。这取决于最后一个 x 刻度标签的长度。因此,如果我将第二个 y 轴上的 y 刻度标签的距离设置为与轴的较大距离,我也必须在任何其他图形上执行此操作……这在其他图形上可能不太美观,因为中间会有太多空间?只是一个想法。
提前致谢
欢呼 Jakob
%------------------------
% Preamble
\usepackage{pgfplots}
\usetikzlibrary{plotmarks}
\usepackage{pgfplotstable}
\pgfplotsset{
cycle list name=mylist BW,
invoke before crossref tikzpicture={\tikzexternaldisable},
invoke after crossref tikzpicture={\tikzexternalenable},
compat=1.12,
}
\usepgfplotslibrary{external}
\tikzexternalize[prefix=3-diagrams/]
%------------------------
% code of figure attached
\begin{figure}[h]
\centering
\tikzsetnextfilename{particle_linescan_Sulfur}%
\begin{tikzpicture}
\begin{axis}[
xlabel={Particle diameter / mm},
ylabel={Sulfur content / \wt},
xmin=0, xmax=1.2,
ymin=0, ymax=3,
minor y tick num=1,
minor x tick num=1,
% xtick={0, 0.2, 0.4, 0.6, 0.8, 1.0}, % unsatisfying solution
height=7.06cm,
width=10.1cm,
yticklabel pos = right, % yes, I do need them on the right side
]
\addplot+[no markers,solid] table[x=line,y=sulfur]{3-data/others/particle_linescan_Sulfur.dat};
\label{particle_linescan_Sulfur}
\end{axis}
\end{tikzpicture}%
\caption[...]{\ref{particle_linescan_Sulfur}...}
\label{fig:particle_linescan}
\end{figure}% fig:particle_linescan_Sulfur
答案1
你可以移动第一个ytick
:
yticklabel={\ifnum \ticknum=1
\raisebox{1ex}{\pgfmathprintnumber{\tick}}
\else\pgfmathprintnumber{\tick}\fi
},
代码:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel={Particle diameter / mm},
ylabel={Sulfur content},
xmin=0, xmax=1.2,
ymin=0, ymax=3,
minor y tick num=1,
minor x tick num=1,
yticklabel={\ifnum \ticknum=1
\raisebox{1ex}{\pgfmathprintnumber{\tick}}
\else\pgfmathprintnumber{\tick}\fi
},
height=7.06cm,
width=10.1cm,
yticklabel pos = right,
]
\end{axis}
\end{tikzpicture}%
\end{document}