Matplotlib:如何按值对散点图着色


通常,您可能希望根据第三个变量对 matplotlib 散点图中的点的颜色进行着色。幸运的是,使用matplotlib.pyplot.scatter()函数可以轻松做到这一点,该函数采用以下语法:

matplotlib.pyplot.scatter(x, y, s=无, c=无, cmap=无)

金子:

  • x:用于绘图中 x 轴位置的值表。
  • y:用于绘图中 y 轴位置的值数组。
  • s:标记的大小。
  • c:用于标记颜色的值表。
  • cmap:用于绘图的颜色图。

您可以使用c指定用于颜色值的变量,并且可以使用cmap指定用于点云中标记的实际颜色。

本教程解释了此功能实际使用的几个示例。

示例 1:按值排列的彩色散点图

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': [3, 4, 4, 5, 7, 8, 8, 9]})

#view DataFrame
df

        X Y Z
0 25 5 3
1 12 7 4
2 15 7 4
3 14 9 5
4 19 12 7
5 23 9 8
6 25 9 8
7 29 4 9

以下代码展示了如何使用灰色调色板并使用z变量的值作为调色板的阴影来创建点云:

 import matplotlib.pyplot as plt

#create scatterplot
plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' gray ')

Matplotlib 按值绘制散点图颜色

对于这个特定的示例,我们选择“灰色”调色板,但您可以在matplotlib 调色板文档中找到要使用的可用调色板的完整列表。

例如,我们可以指定“Greens”作为调色板:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens ') 

Matplotlib 使用 cmap 绘制散点图

默认情况下, c参数值较大的标记的阴影颜色较深,但您可以通过简单地将_r添加到 cmap 名称来扭转这种趋势:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens_r ') 

Matplotlib 调色板反转比例

示例 2:按类别分类的彩色散点图

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']})

#view DataFrame
df

	X Y Z
0 25 5 A
1 12 7 A
2 15 7 B
3 14 9 B
4 19 12 B
5 23 9 C
6 25 9 C
7 29 4 C

以下代码演示如何使用z变量创建散点图,以根据类别为标记着色:

 import matplotlib.pyplot as plt

groups = df. groupby ('z')
for name, group in groups:
    plt. plot (group.x, group.y, marker=' o ', linestyle='', markersize=12, label=name)

plt. legend ()

Matplotlib 散点图按类别着色

您可以在此处找到更多 Python 教程。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注