如何基于基于-Matplotlib-Python列中的值的颜色添加图例?

时间:2019-07-16 12:54:05

标签: python matplotlib scatter-plot graphing

我的数据库包含77个产品,涉及大约2000个项目。我将产品分成11组,并为每个产品创建2个数据框,其中一个包含产品1-11,例如有折扣,有其他没有折扣。我已经压缩了这些数据框,然后使用for循环创建了7个散点图,每种产品的颜色不同,折扣和不折扣的标记也不同。

我的问题是我试图添加一个图例,以显示产品1-11的颜色和标记,但是当我分配label=a['ProductId']时,它为我提供了每个单独数据点的标签,而不是产品整个。有没有一种简单的解决方案,我到处搜索了却没有找到。我的代码是:

ScatterPlots = (Scatter1, Scatter2, Scatter3, Scatter4, Scatter5, Scatter6, Scatter7)
ScatterPlotsb = (Scatter1a, Scatter2a, Scatter3a, Scatter4a, Scatter5a, Scatter6a, Scatter7a)
zipscat = zip(ScatterPlots, ScatterPlotsb)

for a, b in zipscat:
    fig = plt.figure(figsize=(10,10))
    ax1 = fig.add_subplot(111)
    ax1.scatter(a['Discount'], a['UnitPrice'], c=a['ProductId'], marker = ".", label='a['ProductId']')
    ax1.scatter(b['Discount'], b['UnitPrice'], c=b['ProductId'], marker = "1", label='b['ProductId']')
    plt.xlabel('Discount')
    plt.ylabel('UnitPrice')
    plt.title('Products Price vs Discount Level')
    plt.show()

非常感谢您的帮助!

0 个答案:

没有答案