<p>这是预期的行为。您2017年的最小值比提供的四个数据点的第一个四分位数低1.5 IQR以上,在这种情况下,最小值显示为异常值(a点)。在</p>
<p>从<a href="https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.boxplot.html" rel="nofollow noreferrer">the docs</a>到<code>boxplot</code>(<em>emphasis mine</em>):</p>
<blockquote>
<p><code>whis</code> : float, sequence, or string (default = 1.5)</p>
<p>As a float, determines the reach of the whiskers to the beyond the first and third quartiles. In other words, where IQR is the interquartile range <code>(Q3-Q1)</code>, the upper whisker will extend to last datum less than <code>Q3 + whis*IQR)</code>. Similarly, the lower whisker will extend to the first datum greater than <code>Q1 - whis*IQR</code>. <strong>Beyond the whiskers, data are considered outliers and are plotted as individual points</strong>. Set this to an unreasonably high value to force the whiskers to show the min and max values. Alternatively, set this to an ascending sequence of percentile (e.g., [5, 95]) to set the whiskers at specific percentiles of the data. <strong>Finally, <code>whis</code> can be the string <code>'range'</code> to force the whiskers to the min and max of the data</strong>.</p>
</blockquote>
<p>所以如果你想让胡须一直延伸</p>
<pre><code>df.boxplot(grid=False, figsize=(9, 4), whis='range')
</code></pre>
<p><a href="https://i.stack.imgur.com/4ftpN.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/4ftpN.png" alt="enter image description here"/></a></p>