首页 >后端开发 >Python教程 >如何在Python中创建带有按类别分组的标记的散点图?

如何在Python中创建带有按类别分组的标记的散点图?

Barbara Streisand
Barbara Streisand原创
2024-12-03 20:42:16398浏览

How to create a scatter plot with markers grouped by category in Python?

在 Python 中绘制按类别分组的散点图

问题:

在 Pandas 中,如何创建带有标记的散点图,这些标记代表按第三者定义的类别分类的数据列?

解决方案:

要有效创建按类别分组的散点图,请使用plot 函数而不是scatter。这是因为绘图将第三列中的值解释为类别而不是数值。

这是使用绘图的分步解决方案:

  1. 生成数据: 创建一个 DataFrame,其中包含表示 x 轴和 y 轴上数据的列,以及用于类别。
  2. 对数据进行分组: 使用 groupby() 为每个类别创建组。
  3. 绘制数据: 对于每个组,绘制使用绘图绘制 x 和 y 值。指定marker='o',用圆圈表示数据。
  4. 添加图例:使用 ax.legend() 为标记标记相应的类别。

例如:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
np.random.seed(1974)

# Generate Data
num = 20
x, y = np.random.random((2, num))
labels = np.random.choice(['a', 'b', 'c'], num)
df = pd.DataFrame(dict(x=x, y=y, label=labels))

groups = df.groupby('label')

# Plot
fig, ax = plt.subplots()
ax.margins(0.05)
for name, group in groups:
    ax.plot(group.x, group.y, marker='o', linestyle='', ms=12, label=name)
ax.legend()

plt.show()

这将生成一个散点图,其中的标记按“标签”中的值进行分类列和标识类别的图例。

此外,您可以通过调整 ax.margins() 参数、设置标记大小(毫秒)以及指定绘图的调色板来自定义绘图的外观标记。

以上是如何在Python中创建带有按类别分组的标记的散点图?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn