pgfplots 中的轴断裂-两个图的缩放比例相同

pgfplots 中的轴断裂-两个图的缩放比例相同

我找到了问题的答案这里。不过我有一个相关的问题。MWE 可能正是链接问题的答案,所以我在这里只插入“感兴趣的部分”(如果我必须复制整个代码,请告诉我)

\nextgroupplot[ymin=45,ymax=80,
               ytick={60,80},
               axis x line=top, 
               axis y discontinuity=parallel,
               height=4.5cm]
\addplot {x*0};     
\addplot {x^2+50};         

\nextgroupplot[ymin=0,ymax=5,
               ytick={0},
               axis x line=bottom,
               height=2.0cm]
\addplot {x*0};     
\addplot {x^2+50};   

有一点我不太清楚。我ymin=45,ymax=80在第一组和ymin=0,ymax=5第二组中读到,两个范围之间的比率是 7。因此,我本来希望height指定这两个 s,使得它们的比率恰好是 7。事实并非如此。有人能向我解释原因吗?我应该如何选择height与两个图的 y 范围相关的两个参数(如果它们相关!)以获得相同的单位长度?

答案1

我认为这只是反复试验在引用的问题/答案中。但我生成了一个“分析”方法

代码

\documentclass{article}  
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usetikzlibrary{pgfplots.groupplots}

\begin{document}
\pgfplotsset{
% override style for non-boxed plots
    % which is the case for both sub-plots
    every non boxed x axis/.style={} 
}
\begin{tikzpicture}
    \begin{groupplot}[
        group style={
            group name=my fancy plots,
            group size=1 by 2,
            xticklabels at=edge bottom,
            vertical sep=0pt
                    },
        width=8.5cm,
        height=6.5cm,
        xmin=-6, 
        xmax=6,
        scale only axis = true,
        enlargelimits=false,
                    ]
        % top diagram           
        \nextgroupplot[
                        ymin=50,
                        ymax=100,
                        ytick={50,60,75,100},
                        axis x line=top, 
                        axis y discontinuity=parallel,
                        height=5cm,
                        axis y line=right,
                        ymajorgrids=true,
                       ]  
        % red line
        \addplot+[red,no markers,line width=2pt]{x^2+50};  
        % bottom diagram           
        \nextgroupplot[
                        ymin=0,
                        ymax=10,
                        ytick={0,10},
                        axis x line=bottom,
                        height=1cm
                       ]
        % blue line                    
        \addplot+[blue,no markers,line width=2pt]{x*0};           
    \end{groupplot}
\end{tikzpicture}

\end{document}

输出

在此处输入图片描述

证明

我还添加了一个“证明”,证明顶部和底部图表中的距离(缩放比例、尺度)是相等的。

在此处输入图片描述

解释

  • 重要的代码部分是scale only axis = trueenlargelimits=false。以下是来自pgfplots 手册

如果scale only axis已启用,width并且height仅适用于轴矩形。因此,生成的图形大于widthheight(因为有任何轴描述)。然而,轴箱恰好具有规定的目标尺寸。

  • 现在您可以控制缩放了。
  • 我在上图中选择了 50 到 100 的范围。
  • 我在下图中选择了 0 到 10 的范围。
  • 的比例height应为 (100-50)/(10-0)=5。
  • 因此,上图有一个height具有5 厘米底部有一个height1 厘米
  • 我添加了一个证明(见第二张图片)。height下图的设置为 1 厘米(10 毫米),我在 Adob​​e Acrobat 中测量了它。如您所见,轴的高度正好是 10 毫米。此外,您可以看到,在两个图(顶部和底部)中,y 中的 10 增量也是 10 毫米。这意味着缩放比例相同。
  • 顶部axis y lineright。否则 10 和 50 就会重叠。

相关内容