<p>我将回答你的一个主要问题,关于相同的颜色线和标记分类。在调用<code>ax1.stem()</code>以根据正式文档指定颜色列表时,似乎没有直接选项。事实上,他们说,如果一个人这样做,结果可能是不合理的。尽管如此,下面是一个让事情按你的方式完成的技巧。在</p>
<p>想法如下:</p>
<ul>
<li>获取子图上显示的对象(<code>stemline</code>)</li>
<li>获取标记的x-y数据</li>
<li>循环数据并更改每个<em>茎线</em>的颜色。用同一个记号画出相同的颜色。<code>colors</code>是一个数组,指定您选择的颜色。在</li>
</ul>
<p>以下是本规范的相关部分:</p>
<pre><code># 1st subplot
ax1 = fig.add_subplot(1,2,1)
gwp = data[data.columns[1]]
colors = ['r', 'g', 'b', 'y', 'k']
_, stemlines, _ = ax1.stem(gwp)
line = ax1.get_lines()
xd = line[0].get_xdata()
yd = line[0].get_ydata()
# mec and mfc stands for markeredgecolor and markerfacecolor
for i in range(len(stemlines)):
plt.plot([xd[i]], [yd[i]], 'o', ms=7, mfc=colors[i], mec=colors[i])
plt.setp(stemlines[i], 'color', colors[i])
ax1.set_ylabel(r'kg CO$_2$-Eq', fontsize=10)
ax1.set_xlabel('GWP', fontsize=10)
# 2nd subplot
ax2 = fig.add_subplot(1,2,2)
fdp = data[data.columns[2]]
_, stemlines, _ = ax2.stem(fdp)
line = ax2.get_lines()
xd = line[0].get_xdata()
yd = line[0].get_ydata()
for i in range(len(stemlines)):
plt.plot([xd[i]], [yd[i]], 'o', ms=7, mfc=colors[i], mec=colors[i])
plt.setp(stemlines[i], 'color', colors[i])
</code></pre>
<p><a href="https://i.stack.imgur.com/Cu5Un.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Cu5Un.png" alt="enter image description here"/></a></p>