<p dir="auto"><a href="https://sourceforge.net/tracker/?func=detail&amp;aid=2874228&amp;group_id=80706&amp;atid=560720" rel="nofollow">Original report at SourceForge, opened Wed Oct  7 13:51:02 2009</a></p>
<p dir="auto">The documentation on mpl_toolkits.mplot3d.axes3d.Axes3D.scatter states:<br>
Keyword arguments are passed on to<br>
:func:<code class="notranslate">~matplotlib.axes.Axes.scatter</code>.<br>
This does not seem to be the case (see attached code)</p>
<p dir="auto">Note: I run Linux RedHat 5, python v2.6.2, with matplotlib v0.99.1.1 installed with backend = TkAgg</p>
<h3 dir="auto">SourceForge History</h3>
<ul dir="auto">
<li>On Mon Jan  4 19:16:57 2010, by heeres: assigned_to: 100</li>
</ul>
<p dir="auto">There are a lot of <code class="notranslate">*args, **kwargs</code> signatures in the API. In many cases, they could be better described by explicit arguments/kw-arguments. This makes for a more clear API and reduces the chance of unintended misuse.</p>
<p dir="auto">For example <a href="https://matplotlib.org/api/_as_gen/matplotlib.pyplot.delaxes.html#matplotlib.pyplot.delaxes" rel="nofollow">pyplot.delaxes</a></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="def delaxes(*args):
    &quot;&quot;&quot;...&quot;&quot;&quot;
    if not len(args):
        ax = gca()
    else:
        ax = args[0]
    ..."><pre class="notranslate"><code class="notranslate">def delaxes(*args):
    """..."""
    if not len(args):
        ax = gca()
    else:
        ax = args[0]
    ...
</code></pre></div>
<p dir="auto">would be more clear with</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="def delaxes(ax=None):
    &quot;&quot;&quot;...&quot;&quot;&quot;
    if ax is None:
        ax = gca()
    ..."><pre class="notranslate"><code class="notranslate">def delaxes(ax=None):
    """..."""
    if ax is None:
        ax = gca()
    ...
</code></pre></div>
<p dir="auto">For all intended uses, the API compatibility is preserved. Unreasonable and possibly wrong uses like<br>
<code class="notranslate">delaxes(ax1, ax2)</code> or <code class="notranslate">delaxes(ax, mykwarg=True)</code> would raise an Exception after the change. In itself, this is a benefit, because these cases will then be detected as false usage. However it may break existing programs.</p>
<p dir="auto">Before I do any pull requests, is there a policy how to handle such cases?</p>
<ul dir="auto">
<li>Do you want to change these things, or should they be left as they are:
<ul dir="auto">
<li>for cases like the above one where arguments are directly resolved in the function/method?</li>
<li>for cases where the all the arguments are passed like e.g. <code class="notranslate">pyplot.savefig</code>?</li>
</ul>
</li>
<li>Which branch should changes go into?</li>
</ul>