Python散点图中的颜色编码的第3和第4列

时间:2016-02-01 20:15:49

标签: python matplotlib

我试图用基于两列的颜色编码点做一个简单的散点图。我所拥有的是以下内容:

-(IBAction)adress:(id)sender{
    state = CreateProfile;
    MyAddress *my =[[MyAddress alloc]initWithNibName:@"MyAddress" bundle:nil];
    my.state = state;
    [self.navigationController pushViewController:my animated:YES];

现在,我是Python的新手,而我的Googling还没有回答这个问题:

如何使点的颜色响应U,V和Z列?比如说,例如,列U具有" Y"或" N"在里面。我该如何制作" N"积分灰色," Y"点红了吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将包含颜色数组的参数传递给scatter函数,如下所示:

colors = ["grey" if s == "N" else "red" for s in u]
plt.scatter(x1, y2, c=colors)

此代码使用字符串"灰色"填充列表colors。和"红色"取决于u中的哪些元素是" Y"以及" N",然后将其传递给scatter函数。

如果在选择正确的颜色时需要更复杂的逻辑,我建议将其移至单独的功能。让我们将其命名为c(),并将U,V和Z的元素作为参数传递给它。

def c(u1, v1, z1):
    if u1 == "N": return "grey"
    ... # other logic...

colors = [c(u1, v1, z1) for (u1, v1, z1) in zip(u, v, z)]