<h3 dir="auto">Bug report</h3>
<p dir="auto"><strong>Bug summary</strong></p>
<p dir="auto">Please allow support for multiple markers in the same scatter plot</p>
<p dir="auto"><strong>Code for reproduction</strong></p>
<p dir="auto"><a href="https://stackoverflow.com/questions/43528300/python-matplotlib-scatter-different-markers-in-one-scatter" rel="nofollow">https://stackoverflow.com/questions/43528300/python-matplotlib-scatter-different-markers-in-one-scatter</a></p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="# Wrapper around scikit-learn PCA
pca_degs = sy.ordination.PrincipalComponentAnalysis(df_clr.loc[:,idx_deg])
# Array of markers
markers = df_meta[&quot;temperature&quot;].map(lambda x: {&quot;26C&quot;:&quot;o&quot;, &quot;30C&quot;:&quot;^&quot;}[x])[pca_degs.data.index]
# Wrapper around matplotlib `scatter`
pca_degs.plot(marker=markers.tolist())
"><pre class="notranslate"><span class="pl-c"># Wrapper around scikit-learn PCA</span>
<span class="pl-s1">pca_degs</span> <span class="pl-c1">=</span> <span class="pl-s1">sy</span>.<span class="pl-s1">ordination</span>.<span class="pl-v">PrincipalComponentAnalysis</span>(<span class="pl-s1">df_clr</span>.<span class="pl-s1">loc</span>[:,<span class="pl-s1">idx_deg</span>])
<span class="pl-c"># Array of markers</span>
<span class="pl-s1">markers</span> <span class="pl-c1">=</span> <span class="pl-s1">df_meta</span>[<span class="pl-s">"temperature"</span>].<span class="pl-en">map</span>(<span class="pl-k">lambda</span> <span class="pl-s1">x</span>: {<span class="pl-s">"26C"</span>:<span class="pl-s">"o"</span>, <span class="pl-s">"30C"</span>:<span class="pl-s">"^"</span>}[<span class="pl-s1">x</span>])[<span class="pl-s1">pca_degs</span>.<span class="pl-s1">data</span>.<span class="pl-s1">index</span>]
<span class="pl-c"># Wrapper around matplotlib `scatter`</span>
<span class="pl-s1">pca_degs</span>.<span class="pl-en">plot</span>(<span class="pl-s1">marker</span><span class="pl-c1">=</span><span class="pl-s1">markers</span>.<span class="pl-en">tolist</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="ValueError: Unrecognized marker style ['^', '^', 'o', '^', '^', 'o', '^', '^', 'o', 'o', 'o', 'o', 'o', 'o', 'o', nan, 'o', 'o', '^', '^', 'o']
"><pre class="notranslate"><code class="notranslate">ValueError: Unrecognized marker style ['^', '^', 'o', '^', '^', 'o', '^', '^', 'o', 'o', 'o', 'o', 'o', 'o', 'o', nan, 'o', 'o', '^', '^', 'o']

</code></pre></div>
<p dir="auto"><strong>Expected outcome</strong></p>
<p dir="auto">Plot multiple markers instead of running a for-loop and creating one per marker style</p>
<p dir="auto"><strong>Matplotlib version</strong></p>

<ul dir="auto">
<li>
<p dir="auto">Operating system: OSX</p>
</li>
<li>
<p dir="auto">Matplotlib version: 3.2.1</p>
</li>
<li>
<p dir="auto">Matplotlib backend (<code class="notranslate">print(matplotlib.get_backend())</code>): module://ipykernel.pylab.backend_inline</p>
</li>
<li>
<p dir="auto">Python version: 3.8.2</p>
</li>
<li>
<p dir="auto">Jupyter version (if applicable):</p>
</li>
<li>
<p dir="auto">Other libraries:</p>
</li>
</ul>
<h3 dir="auto">Feature Request</h3>
<p dir="auto">It would be great if the <code class="notranslate">plot</code> and <code class="notranslate">scatter</code> functions would allow the <code class="notranslate">marker</code> kwarg to be a list.</p>
<p dir="auto">When using <code class="notranslate">scatter</code>, I can set the color of individual pixels using the <code class="notranslate">c</code> kwarg.  <code class="notranslate">c</code> can be a list/array.  It would be convenient if I could also set the <em>marker style</em> of the individual points using a list of styles.</p>
<p dir="auto">I'm using matplotlib 2.2.2 on Python 3.6</p>