matplotlib 对齐组合线图和散点图的图例标签和控点

a6b3iqyw  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(145)

我有这个MRE:

import matplotlib.pyplot as plt
import numpy as np

for i in range(6):
    plt.plot(np.linspace(0,1), np.linspace(0,1)**(i+1), label=f'{i}')

for i in [0,2,4]:
    plt.scatter(np.linspace(0,1), np.linspace(0,1)**(i+1), label=f'{i}')
    
plt.legend(ncol=2)

它产生:

我想将散点图的条目与相应的线图对齐。
最终结果将是:

line0   scatter0
line1 
line2   scatter2
line3
line4   scatter4
line5

这在matplotlib中可能吗?

pb3s4cty

pb3s4cty1#

要实现这一点,您可以在第二个FOR循环中添加一个虚拟散点图(没有标签的白色)。这将在每个散点图例条目之后添加一个空白图例条目。下面的代码已更新.

for i in range(6):
    plt.plot(np.linspace(0,1), np.linspace(0,1)**(i+1), label=f'{i}')
for i in [0,2,4]:
    plt.scatter(np.linspace(0,1), np.linspace(0,1)**(i+1), label=f'{i}')
    # Add empty scatter entry
    plt.scatter(np.zeros(1), np.zeros([1]), color='w', alpha=0, label=' ')
    
plt.legend(ncol=2)

相关问题