<p dir="auto">In to matplotlib <code class="notranslate">1.3.x</code> the following code:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import seaborn as sns
import pandas as pd
import numpy as np

x = pd.DataFrame(np.random.lognormal(size=(100, 6)), columns=list(&quot;abcdef&quot;))
x.boxplot(sym=&quot;k.&quot;)"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-s1">seaborn</span> <span class="pl-k">as</span> <span class="pl-s1">sns</span>
<span class="pl-k">import</span> <span class="pl-s1">pandas</span> <span class="pl-k">as</span> <span class="pl-s1">pd</span>
<span class="pl-k">import</span> <span class="pl-s1">numpy</span> <span class="pl-k">as</span> <span class="pl-s1">np</span>

<span class="pl-s1">x</span> <span class="pl-c1">=</span> <span class="pl-s1">pd</span>.<span class="pl-v">DataFrame</span>(<span class="pl-s1">np</span>.<span class="pl-s1">random</span>.<span class="pl-en">lognormal</span>(<span class="pl-s1">size</span><span class="pl-c1">=</span>(<span class="pl-c1">100</span>, <span class="pl-c1">6</span>)), <span class="pl-s1">columns</span><span class="pl-c1">=</span><span class="pl-en">list</span>(<span class="pl-s">"abcdef"</span>))
<span class="pl-s1">x</span>.<span class="pl-en">boxplot</span>(<span class="pl-s1">sym</span><span class="pl-c1">=</span><span class="pl-s">"k."</span>)</pre></div>
<p dir="auto">Produces:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/38f034e4811839724b181982030b73a4bcb4f122220bb3a5c9328d51910b5e6a/687474703a2f2f692e737461636b2e696d6775722e636f6d2f7a636f5a502e706e67"><img src="https://camo.githubusercontent.com/38f034e4811839724b181982030b73a4bcb4f122220bb3a5c9328d51910b5e6a/687474703a2f2f692e737461636b2e696d6775722e636f6d2f7a636f5a502e706e67" alt="outliers" data-canonical-src="http://i.stack.imgur.com/zcoZP.png" style="max-width: 100%;"></a></p>
<p dir="auto">In <code class="notranslate">1.4.2</code> I can't get the outliers to be shown?</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/818651685befa5baebaf9dc03d1b71f0d99a1e5bcf9a611c5a89b2d7290b9a97/687474703a2f2f692e737461636b2e696d6775722e636f6d2f53507267732e706e67"><img src="https://camo.githubusercontent.com/818651685befa5baebaf9dc03d1b71f0d99a1e5bcf9a611c5a89b2d7290b9a97/687474703a2f2f692e737461636b2e696d6775722e636f6d2f53507267732e706e67" alt="no outliers" data-canonical-src="http://i.stack.imgur.com/SPrgs.png" style="max-width: 100%;"></a></p>
<p dir="auto">[TAC edited to fix in-line version number]</p>
<p dir="auto">Inspired by <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="476732889" data-permission-text="Title is private" data-url="https://github.com/matplotlib/matplotlib/issues/14980" data-hovercard-type="issue" data-hovercard-url="/matplotlib/matplotlib/issues/14980/hovercard?comment_id=518156902&amp;comment_type=issue_comment" href="https://github.com/matplotlib/matplotlib/issues/14980#issuecomment-518156902">#14980 (comment)</a>.</p>
<p dir="auto">Current APIs:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="pyplot.xticks(ticks=None, labels=None, **kwargs)

Axes.set_xticks(self, ticks, minor=False)
Axes.set_xticklabels(self, labels, fontdict=None, minor=False, **kwargs)"><pre class="notranslate"><code class="notranslate">pyplot.xticks(ticks=None, labels=None, **kwargs)

Axes.set_xticks(self, ticks, minor=False)
Axes.set_xticklabels(self, labels, fontdict=None, minor=False, **kwargs)
</code></pre></div>
<p dir="auto">Notes:</p>
<ul dir="auto">
<li>The <code class="notranslate">Axes</code> methods are just thin wrappers around the <code class="notranslate">Axis</code> methods.</li>
<li>The kwargs are <code class="notranslate">Text</code> properties.</li>
</ul>
<h3 dir="auto">Issue</h3>
<p dir="auto">The Axes API feels a bit odd. AFAICS <code class="notranslate">set_xticklabels</code> does not make much sense without <code class="notranslate">set_xticks</code> before; otherwise how do I know that the labels will be at the correct places and that I have the right number of labels for the ticks.</p>
<h3 dir="auto">Proposal</h3>
<ol class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Extend the API of <code class="notranslate">set_xticks</code> to be
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Axes.set_xticks(self, ticks, labels=None, minor=False, **kwargs)"><pre class="notranslate"><code class="notranslate">Axes.set_xticks(self, ticks, labels=None, minor=False, **kwargs)
</code></pre></div>
maybe even with <code class="notranslate">ticks=None</code> to be compatible with the pyplot API - though I don't know if one needs the ability to set ticks without positions.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Soft-deprecate <code class="notranslate">set_xticklabels</code>. It's too widely used to be deprecated, but we shouldn't  have two equal ways here.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Optionally add the minor kwarg to <code class="notranslate">pyplot.xticks</code>; it's not strictly necessary because pyplot may have less functionality than the OOP interface; but it doesn't hurt either.</li>
</ol>
<p dir="auto">The proposed signature would be an API-change because the minor argument might have been passed positionally. Thus, we should start with <code class="notranslate">_make_keyword_only</code> on that parameter.</p>