异常值缺失

异常值缺失

我有这个代码

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usepackage{pgfplots}
\usepgfplotslibrary{statistics}
\pgfplotsset{compat=1.10}
\usepackage{caption}

\begin{document}

\begin{center}
        \begin{tikzpicture}[scale=0.75]
        \begin{axis}[samples=101,smooth,height=9cm,ymin =0,
            boxplot/draw direction=y,
            xtick=\empty,
            ytick={200,400,600,1200,1400,2675,4000},ytick pos=left,boxplot/variable width,      
            ]
            \addplot+ [boxplot ={lower whisker=400, lower quartile=600, median=1200, upper quartile=1400, upper whisker=2675}, ] coordinates {(0,200)(0,4000)};
            
            \addplot[mark=none] coordinates {(1,4000)} node[pin=0:{Valor atípico}]{} ;
            \addplot[mark=none] coordinates {(1,2675)} node[pin=15:{ $P_{75}+1.5\cdot RIC(X)$}]{} ;
            \addplot[mark=none] coordinates {(1,400)} node[pin=-15:{ $P_{25}-1.5\cdot RIC(X)$}]{} ;
            \addplot[mark=none] coordinates {(1.075,1200)} node[pin=0:{$Q_{2}=Me$}]{} ;
            \addplot[mark=none] coordinates {(1.075,600)} node[pin=0:{$Q_{1}$}]{} ;
            \addplot[mark=none] coordinates {(1.075,1400)} node[pin=15:{$Q_{3}$}]{} ;   
            \addplot[mark=none] coordinates {(1,200)} node[pin=180:{Valor atípico}]{} ; 
        \end{axis}
    \end{tikzpicture}\captionof*{figure}{Without prepared:  No lower outlier}

    \begin{tikzpicture}[scale=0.75]
        \begin{axis}[samples=101,smooth,height=9cm,ymin =0,
            boxplot/draw direction=y,
            xtick=\empty,
            ytick={200,400,600,1200,1400,2675,4000},ytick pos=left,boxplot/variable width,      
            ]
            \addplot+ [boxplot prepared ={lower whisker=400, lower quartile=600, median=1200, upper quartile=1400, upper whisker=2675,box extend =0.5,}, ] coordinates {(0,200)(0,4000)};
            
            \addplot[mark=none] coordinates {(1,4000)} node[pin=0:{Valor atípico}]{} ;
            \addplot[mark=none] coordinates {(1,2675)} node[pin=15:{ $P_{75}+1.5\cdot RIC(X)$}]{} ;
            \addplot[mark=none] coordinates {(1,400)} node[pin=-15:{ $P_{25}-1.5\cdot RIC(X)$}]{} ;
            \addplot[mark=none] coordinates {(1.075,1200)} node[pin=0:{$Q_{2}=Me$}]{} ;
            \addplot[mark=none] coordinates {(1.075,600)} node[pin=0:{$Q_{1}$}]{} ;
            \addplot[mark=none] coordinates {(1.075,1400)} node[pin=15:{$Q_{3}$}]{} ;   
            \addplot[mark=none] coordinates {(1,200)} node[pin=180:{Valor atípico}]{} ; 
        \end{axis}
    \end{tikzpicture}\captionof*{figure}{With prepared: outlier but messed width up}
\end{center}
\end{document}

如你所见,第一个点在 (0,200) 处没有异常值,但该点在范围内

在第二个中,我得到了两个异常值,但是盒子大小却很狂野。

我尝试按顺序修改第二个box extend =0.5,,但没有成功。

在此处输入图片描述

我错过了什么?

提前致谢

答案1

我认为宽度差异是使用的结果boxplot/variable width。请参阅手册中的描述:

在此处输入图片描述

将例如添加sample size=1到第二个,看起来你得到了相同的宽度。

关于缺失的异常值,我不确定为什么会发生这种情况。但据我了解,boxplot您应该提供数据,并pgfplots计算晶须、四分位数和中位数。为什么不能只使用boxplot prepared,当您有预先计算的值时,这是预期的方法?

一个更简洁的例子

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{statistics}
\pgfplotsset{compat=1.10}

\begin{document}
        \begin{tikzpicture}
           \begin{axis}[
            boxplot/draw direction=y,
            boxplot/variable width=true, 
            ]
            \addplot+ [
            boxplot ={
               lower whisker=400,
               lower quartile=600,
               median=1200,
               upper quartile=1400,
               upper whisker=2675}
               ] coordinates {(0,200)(0,4000)};
        \end{axis}
    \end{tikzpicture}
    

    \begin{tikzpicture}
        \begin{axis}[
            boxplot/draw direction=y,
            boxplot/variable width=true, 
            ]
            \addplot+ [
              boxplot prepared ={
                sample size=1,     % <-- added
                lower whisker=400,
                lower quartile=600,
                median=1200,
                upper quartile=1400,
                upper whisker=2675}
                ] coordinates {(0,200)(0,4000)};
            
        \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容