关于python的多个图和多个图例的问题

时间:2015-07-13 22:35:40

标签: python matplotlib

我有以下代码,任何人都可以帮我修复它吗?我想在python numpy / matlab图上有多个传说。

 import numpy as np
    import matplotlib.pyplot as plt
    fig = plt.figure(1)
    x0 = np.array([[1,2,2,3]])
    x1 = np.array([[2,2,4,3]])
    y0 = np.array([[1,6,2,7]])
    y0 = np.array([[4,2,2,5]])
    p1= plt.scatter(x0,x1,color='blue',s=3)
    p2= plt.scatter(y0,y0,color='red',s=3)
    leg = plt.legend((p1,p2),('class0','class1'),fontsize=8)
    plt.show()

我希望我的下图可以在无花果上并拥有自己的传奇

    plt.hold(True)
    z0 = np.array([[11,16,13,17]])
    z1 = np.array([[13,16,12,17]])
    p3 = plt.scatter(z0,z1,color='k')
    plt.show()

我应该如何为p3添加图例?

1 个答案:

答案 0 :(得分:0)

这里我在同一个图上有三个散点图,其中一个图例在右上角,另一个在右下角。

我们可以通过在matplotlib legend guide中描述的轴添加第一个图例来显示两个图例:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(1)
x0 = np.array([[1,2,2,3]])
x1 = np.array([[2,2,4,3]])
y0 = np.array([[1,6,2,7]])
y0 = np.array([[4,2,2,5]])
p1= plt.scatter(x0,x1,color='blue',s=50, label='class0')
p2= plt.scatter(y0,y0,color='red',s=50, label='class1')
z0 = np.array([[11,16,13,17]])
z1 = np.array([[13,16,12,17]])
p3 = plt.scatter(z0,z1,color='k', s=75, label='class3')

leg = plt.legend(handles=[p1, p2], fontsize=8, loc=1)
ax = plt.gca().add_artist(leg)
plt.legend(handles=[p3], fontsize=8, loc=4)
plt.show()

enter image description here