首页  >  文章  >  后端开发  >  如何在 Matplotlib、Seaborn 和 Pandas 中为分类级别创建不同颜色的散点图?

如何在 Matplotlib、Seaborn 和 Pandas 中为分类级别创建不同颜色的散点图?

Barbara Streisand
Barbara Streisand原创
2024-10-17 16:34:02324浏览

How to Create a Scatter Plot with Different Colors for Categorical Levels in Matplotlib, Seaborn, and Pandas?

使用不同颜色表示类别级别的散点图

使用 Matplotlib

使用 Matplotlib 创建散点图,其中不同的类别级别由不同颜色表示,请按照以下步骤操作:

  1. 导入 Matplotlib 和要绘制的数据框。
  2. 定义一个字典,将分类级别映射到绘制颜色。
  3. 使用plt.scatter,传入 x 和 y 值以及 c 参数来指定颜色。
<code class="python">import matplotlib.pyplot as plt
import pandas as pd

colors = {'D':'tab:blue', 'E':'tab:orange', 'F':'tab:green', 'G':'tab:red', 'H':'tab:purple', 'I':'tab:brown', 'J':'tab:pink'}

df.scatter(df['carat'], df['price'], c=df['color'].map(colors))

plt.show()</code>

使用 Seaborn

Seaborn 是 Matplotlib 的包装器,它提供了更多用户友好的界面。要使用 Seaborn 创建具有不同颜色的分类级别散点图,请按照以下步骤操作:

  1. 导入 Seaborn 和要绘制的数据框。
  2. 使用seaborn.scatterplot,传递在 x 和 y 值以及 Hue 参数中指定分类级别。
<code class="python">import seaborn as sns

sns.scatterplot(x='carat', y='price', data=df, hue='color')

plt.show()</code>

使用 pandas.groupby 和 pandas.DataFrame.plot

您还可以使用 pandas。 groupby 和 pandas.DataFrame.plot 为分类级别创建具有不同颜色的散点图。此方法需要更多的手动工作,但它可以让您更好地控制绘图的外观。

  1. 导入 pandas 和要绘制的数据框。
  2. 按分类级别。
  3. 迭代各组并用不同的颜色绘制每个组。
<code class="python">import pandas as pd

fig, ax = plt.subplots(figsize=(6, 6))

grouped = df.groupby('color')
for key, group in grouped:
    group.plot(ax=ax, kind='scatter', x='carat', y='price', label=key, color=colors[key])

plt.show()</code>

以上是如何在 Matplotlib、Seaborn 和 Pandas 中为分类级别创建不同颜色的散点图?的详细内容。更多信息请关注PHP中文网其他相关文章!

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