不令人满意的可视化效果——刻度标签相互接触

不令人满意的可视化效果——刻度标签相互接触

在添加的图片的右下角,你会看到 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}

相关内容