擅长:python、mysql、java
<p>一开始,如果不知道数据帧中数据的结构,就很难说出具体的东西,所以请考虑发布例如<code>RGDFT8mm.head()</code></p>
<p>也就是说,我至少从你的代码中看到,你在一个数据帧中混合了红色和蓝色的数据,而没有在散点图之前对其进行分组。因此,一个散射命令包含两种颜色,因此无法在前景中获得一种颜色。<br/>
如果重新构造,使每个散点命令只打印一种颜色,则每个散点都将绘制在前一种颜色之上,此外,您还可以根据自己的意愿使用<code>zorder</code>kwarg来定义每个数据集的层。在</p>
<p>对于分组,您可以使用类似<code>RGDFT8mm.groupby('SzT')</code>-但是,为了从这里给出有用的提示,我宁愿等待确切地知道您的数据帧结构。<br/>
但我的第一个猜测是:</p>
<pre><code>for grpname, grpdata in RGDFT8mm.groupby('SzT'):
ax1.scatter(grpdata['Pcp'], grpdata['Pcp_3day'])
ax2.scatter(grpdata['Pcp'], grpdata['Pcp_7day'])
ax3.scatter(grpdata['Pcp'], grpdata['Pcp_14day'])
ax4.scatter(grpdata['Pcp'], grpdata['Pcp_28day'])
</code></pre>
<hr/>
<p><strong>编辑</strong>
澄清示例</p>
^{pr2}$
<p><img src="https://i.stack.imgur.com/A85OD.jpg" alt="enter image description here"/></p>
<hr/>
<p>…为了减少打印<code>legend</code>的次数,可以在所有轴上循环</p>
<pre><code>for a in axs.flatten():
a.legend()
</code></pre>
<p>在绘制所有子图之后。在</p>
<p>然而,与我的例子相比,你的图例都是相同的,因此一个图例代表整个图形会更好。只是为了这个而已</p>
<pre><code>fig.legend()
</code></pre>
<p>可修改的参数相同,如轴图例。在</p>