Matplotlib散点图颜色一点



给定以下数据帧:

import pandas as pd
df = pd.DataFrame({'X':[1,2,3],
                   'Y':[4,5,6],
                   'Site':['foo','bar','baz']
                   })
df
    Site    X   Y
0   foo     1   4
1   bar     2   5
2   baz     3   6

我想迭代数据帧中的行,以生成3个散点图(在这种情况下,尽管需要n行的通用解决方案):

其中"foo"的点是红色,其余的是蓝色,

另一个,其中"条"的点是红色,其余的是蓝色,

第三种是"baz"的圆点为红色,其余为蓝色。

以下是手动完成的"foo"示例:

import matplotlib.pyplot as plt
%matplotlib inline
color=['r','b','b']
x=df['X']
y=df['Y']
plt.scatter(x, y, c=color, alpha=1,s=234)
plt.show()

提前感谢!

您有两个选项:

  1. 根据数据创建两个"视图",一个包含红色元素,另一个包含其余元素。例如,您可以为此应用条件切片。然后,用红色绘制一组,用蓝色绘制另一组。这将是同一CCD_ 2中的两个CCD_。对每组重复上述步骤。

  2. 非常方便的是,默认的jet颜色映射在其极端是蓝色和红色。然后,您可以对所有数据只调用scatter一次,但将scatterc参数设置为通过条件切片从原始数据中获取的布尔数组。这将使所需项目的颜色映射到"1",而其他错误项目将为"0",并相应地进行颜色映射。

注意:当我谈到条件切片时,它就像:

interesting_items = array[array == interesting_value]

或者Pandas中的一些等价物。