首页 >后端开发 >Python教程 >如何在 Python 中创建具有不同符号的分类散点图?

如何在 Python 中创建具有不同符号的分类散点图?

Susan Sarandon
Susan Sarandon原创
2024-11-18 05:22:02830浏览

How to Create Categorical Scatter Plots with Distinct Symbols in Python?

使用 Plot 绘制分类散点图

在本指南中,我们的目标是解决在 Python 中使用 Pandas 和 创建散点图时的常见问题matplotlib。具体来说,我们将探索如何将特定符号分配给数据中的不同类别。

问题

给定一个具有多个列的 Pandas DataFrame,目标是创建散点图,其中两个变量沿 x 轴和 y 轴绘制,而第三列确定用于表示数据点的符号。

解决方案:使用绘图

虽然 scatter 可用于此任务,但它需要类别的数值,这限制了其有效性。更好的方法是对离散类别使用绘图函数。

以下代码示例演示了如何实现此方法:

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()

为了获得视觉上吸引人的结果,您可以自定义绘图使用 Pandas 绘图模块中提供的 matplotlib 样式:

plt.rcParams.update(pd.tools.plotting.mpl_stylesheet)
colors = pd.tools.plotting._get_standard_colors(len(groups), color_type='random')
# ... (the rest of the code remains the same)

这将为您提供一个散点图,其中每个类别都由不同的颜色和符号表示。

以上是如何在 Python 中创建具有不同符号的分类散点图?的详细内容。更多信息请关注PHP中文网其他相关文章!

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