Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Matplotlib散点图颜色一点_Python 3.x_Pandas_Matplotlib - Fatal编程技术网

Python 3.x Matplotlib散点图颜色一点

Python 3.x Matplotlib散点图颜色一点,python-3.x,pandas,matplotlib,Python 3.x,Pandas,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 我想迭代数据帧中的行以生

给定以下数据帧:

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()
提前谢谢

您有两个选择:

  • 从数据中创建两个“视图”,一个包含ToBe红色元素,另一个包含其余元素。例如,您可以为此应用条件切片。然后,用红色绘制一组,用蓝色绘制另一组。这将是同一个
    图中的两个
    分散
    命令。每组重复上述步骤

  • 非常方便的是,默认的
    jet
    colormap在极端情况下为蓝色和红色。然后,您可以对所有数据调用一次
    scatter
    ,但将
    scatter
    c
    参数设置为通过条件切片从原始数据中获取的布尔数组。这将使所需项目的颜色映射为“1”,而另一个false项目的颜色映射为“0”,并相应地进行颜色映射

  • 注意:当我谈到条件切片时,它类似于:

    interesting_items = array[array == interesting_value]
    
    或者在大熊猫身上找到一些类似物