我试图用基于两列的颜色编码点做一个简单的散点图。我所拥有的是以下内容:
-(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"点红了吗?提前谢谢!
答案 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)]