<h3 dir="auto">Bug report</h3>
<p dir="auto"><strong>Bug summary</strong></p>
<p dir="auto">Attempting to IMPORT matplotlib under Python 3.7.x  on a Win10Pro results in error:  "ImportError: DLL load failed: The specific module could not be found".<br>
DLL name not given.<br>
However, first importing PyQt5, and only then importing matplotlib works as it should.</p>
<p dir="auto"><strong>Code for reproduction</strong></p>
<ul dir="auto">
<li>install Python 3.7.x  (tested both 3.7.2 and 3.7.3)  on Win10Pro</li>
<li>install matplotlib (version 3.1.0) with pip - installs fine, no issues</li>
<li>install PyQt5 (version 5.12.2) with pip - installs fine, no issues</li>
<li>start Python</li>
<li>under Python, enter command: "import matplotlib"</li>
</ul>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt; import matplotlib
Traceback (most recent call last):
  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
  File &quot;C:\Program Files\Python37\lib\site-packages\matplotlib\__init__.py&quot;, line 200, in &lt;module&gt;
    _check_versions()
  File &quot;C:\Program Files\Python37\lib\site-packages\matplotlib\__init__.py&quot;, line 194, in _check_versions
    module = importlib.import_module(modname)
  File &quot;C:\Program Files\Python37\lib\importlib\__init__.py&quot;, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: The specified module could not be found.
&gt;&gt;&gt;
&gt;&gt;&gt;
# importing matplotlib works fine when PyQt5 imported first
&gt;&gt;&gt; import PyQt5
&gt;&gt;&gt; import matplotlib
&gt;&gt;&gt; import serial
&gt;&gt;&gt;
&gt;&gt;&gt; ^Z
"><pre class="notranslate"><span class="pl-v">Python</span> <span class="pl-c1">3.7</span><span class="pl-c1">.3</span> (<span class="pl-s1">v3</span>.<span class="pl-c1">7.3</span>:<span class="pl-s1">ef4ec6ed12</span>, <span class="pl-v">Mar</span> <span class="pl-c1">25</span> <span class="pl-c1">2019</span>, <span class="pl-c1">22</span>:<span class="pl-c1">22</span>:<span class="pl-c1">05</span>) [<span class="pl-v">MSC</span> <span class="pl-s1">v</span><span class="pl-c1">.1916</span> <span class="pl-c1">64</span> <span class="pl-en">bit</span> (<span class="pl-v">AMD64</span>)] <span class="pl-s1">on</span> <span class="pl-s1">win32</span>
<span class="pl-v">Type</span> <span class="pl-s">"help"</span>, <span class="pl-s">"copyright"</span>, <span class="pl-s">"credits"</span> <span class="pl-c1">or</span> <span class="pl-s">"license"</span> <span class="pl-k">for</span> <span class="pl-s1">more</span> <span class="pl-s1">information</span>.
<span class="pl-c1">&gt;&gt;</span><span class="pl-c1">&gt;</span> <span class="pl-k">import</span> <span class="pl-s1">matplotlib</span>
<span class="pl-v">Traceback</span> (<span class="pl-s1">most</span> <span class="pl-s1">recent</span> <span class="pl-s1">call</span> <span class="pl-s1">last</span>):
  <span class="pl-v">File</span> <span class="pl-s">"&lt;stdin&gt;"</span>, <span class="pl-s1">line</span> <span class="pl-c1">1</span>, <span class="pl-c1">in</span> <span class="pl-c1">&lt;</span><span class="pl-s1">module</span><span class="pl-c1">&gt;</span>
  <span class="pl-v">File</span> <span class="pl-s">"C:\Program Files\Python37\lib\site-packages\matplotlib\__init__.py"</span>, <span class="pl-s1">line</span> <span class="pl-c1">200</span>, <span class="pl-s1">in</span> <span class="pl-c1">&lt;</span><span class="pl-s1">module</span><span class="pl-c1">&gt;</span>
    <span class="pl-en">_check_versions</span>()
  <span class="pl-v">File</span> <span class="pl-s">"C:\Program Files\Python37\lib\site-packages\matplotlib\__init__.py"</span>, <span class="pl-s1">line</span> <span class="pl-c1">194</span>, <span class="pl-s1">in</span> <span class="pl-s1">_check_versions</span>
    <span class="pl-s1">module</span> <span class="pl-c1">=</span> <span class="pl-s1">importlib</span>.<span class="pl-en">import_module</span>(<span class="pl-s1">modname</span>)
  <span class="pl-v">File</span> <span class="pl-s">"C:\Program Files\Python37\lib\importlib\__init__.py"</span>, <span class="pl-s1">line</span> <span class="pl-c1">127</span>, <span class="pl-s1">in</span> <span class="pl-s1">import_module</span>
    <span class="pl-s1">return</span> <span class="pl-s1">_bootstrap</span>.<span class="pl-en">_gcd_import</span>(<span class="pl-s1">name</span>[<span class="pl-s1">level</span>:], <span class="pl-s1">package</span>, <span class="pl-s1">level</span>)
<span class="pl-v">ImportError</span>: <span class="pl-v">DLL</span> <span class="pl-s1">load</span> <span class="pl-s1">failed</span>: <span class="pl-v">The</span> <span class="pl-s1">specified</span> <span class="pl-s1">module</span> <span class="pl-s1">could</span> <span class="pl-c1">not</span> <span class="pl-s1">be</span> <span class="pl-s1">found</span>.
<span class="pl-c1">&gt;&gt;</span><span class="pl-c1">&gt;</span>
<span class="pl-c1">&gt;&gt;</span><span class="pl-c1">&gt;</span>
<span class="pl-c"># importing matplotlib works fine when PyQt5 imported first</span>
<span class="pl-c1">&gt;&gt;</span><span class="pl-c1">&gt;</span> <span class="pl-s1">import</span> <span class="pl-v">PyQt5</span>
<span class="pl-c1">&gt;&gt;</span><span class="pl-c1">&gt;</span> <span class="pl-s1">import</span> <span class="pl-s1">matplotlib</span>
<span class="pl-c1">&gt;&gt;</span><span class="pl-c1">&gt;</span> <span class="pl-s1">import</span> <span class="pl-s1">serial</span>
<span class="pl-c1">&gt;&gt;</span><span class="pl-c1">&gt;</span>
<span class="pl-c1">&gt;&gt;</span><span class="pl-c1">&gt;</span> <span class="pl-c1">^</span><span class="pl-v">Z</span></pre></div>
<p dir="auto"><strong>Actual outcome</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# see above"><pre class="notranslate"><code class="notranslate"># see above
</code></pre></div>
<p dir="auto"><strong>Expected outcome</strong></p>
<p dir="auto">using matplotlib should not depend on importing PyQt5 first; but when done, code works fine</p>
<p dir="auto"><strong>Matplotlib version</strong></p>

<ul dir="auto">
<li>Operating system: Win10Pro</li>
<li>Matplotlib version: 3.1.0</li>
<li>Matplotlib backend (<code class="notranslate">print(matplotlib.get_backend())</code>): TkAgg right after importing; in the full code using qt5agg</li>
<li>Python version: 3.7.2, 3.7.3, 64 bit</li>
<li>Jupyter version (if applicable): n.a.</li>
<li>Other libraries:</li>
</ul>


<p dir="auto">Python installed from Win installer<br>
matplotlib and PyQt5 installed with pip</p>
<h3 dir="auto">Documentation Link</h3>
<p dir="auto"><a href="https://matplotlib.org/devdocs/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.html#mpl_toolkits.mplot3d.axes3d.Axes3D.scatter" rel="nofollow">https://matplotlib.org/devdocs/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.html#mpl_toolkits.mplot3d.axes3d.Axes3D.scatter</a></p>
<h3 dir="auto">Problem</h3>
<p dir="auto">Note that both scatter() and scatter3D() appear, although they are strict aliases of one another, duplicating much content.  (I'm not suggesting to get rid of the alias, just to dedupe them in the docs.)  Quite a few other methods exhibit the same duplication.</p>
<h3 dir="auto">Suggested improvement</h3>
<p dir="auto"><em>No response</em></p>
<h3 dir="auto">Matplotlib Version</h3>
<p dir="auto">3.4.2.post1559+g3a46327c9c</p>
<h3 dir="auto">Matplotlib documentation version</h3>
<p dir="auto">3.4.2.post1559+g3a46327c9c</p>