在plt.plot()命令外定义绘图标签 - Matplotlib

时间:2014-03-31 11:21:39

标签: python matplotlib plot

我根据数据中的条件制作了一个使用两个不同符号的散点图。 在迭代遍历数据行的for循环中,如果满足条件,则用圆绘制点,如果不满足,则用正方形绘制点:

for i in thick.index:
    if thick['Interest'][i] == 1:
        plt.scatter(thick['NiThickness'][i], thick['GdThickness'][i], marker = 'o', color = 'b')
    else:
        plt.scatter(thick['NiThickness'][i], thick['GdThickness'][i], marker = 's', color = 'r')

其中'兴趣'是一个用0和0填充的列(零?)。

我希望圈子的图例中有一个标签,广场上有一个标签,但如果我在label = 'circle'命令中声明plt.scatter(...),我会在我的数据文件中有行的图例。

我有一个简单的伎俩吗?

感谢。

2 个答案:

答案 0 :(得分:1)

这是我在这种情况下使用的模式:

label_o = 'Circle'
label_s = 'Square'
for i in thick.index:
    if thick['Interest'][i] == 1:
        plt.scatter(thick['NiThickness'][i], thick['GdThickness'][i], marker=o', color='b', label=label_o)
        label_o = None
    else:
        plt.scatter(thick['NiThickness'][i], thick['GdThickness'][i], marker='s', color='r', label=label_s)
        label_s = None

这也很好地处理了只有一个类别存在的情况。

答案 1 :(得分:1)

如果thick是数据框:

idx = thick['Interest'] == 1
ax = plt.subplot(111)
ax.scatter(thick['NiThickness'][idx], thick['GdThickness'][idx],
           marker='o', color='b', label='circle')
ax.scatter(thick['NiThickness'][~idx], thick['GdThickness'][~idx],
           marker='s', color='r', label='square')