本文介绍如何在 Python 中创建散点图使用 matplotlib,其中每种颜色代表不同的分类级别。这种方法避免了使用Python的seaborn和ggplot等辅助绘图包。
Matplotlib在plt.scatter中提供了c参数,它允许颜色自定义。这是一个例子:
import matplotlib.pyplot as plt
import pandas as pd
# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
'price': [326, 326, 327],
'color': ['E', 'E', 'E']})
# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}
# Scatter plot with colors
plt.scatter(df['carat'], df['price'], c=df['color'].map(colors))
plt.show()
map(colors)函数将“菱形”颜色映射到“绘图”颜色。
虽然本文重点介绍matplotlib ,值得一提的是seaborn还提供了一个便捷的解决方案:
import seaborn as sns
# Scatter plot with colors
sns.lmplot(x='carat', y='price', data=df, hue='color', fit_reg=False)
对于手动方法,您可以使用 pandas 按颜色分组并分别绘制每个组:
import matplotlib.pyplot as plt
import pandas as pd
# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
'price': [326, 326, 327],
'color': ['E', 'E', 'E']})
# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}
# Group by color and plot
grouped = df.groupby('color')
for key, group in grouped:
group.plot(ax=plt.gca(), kind='scatter', x='carat', y='price', label=key, color=colors[key])
plt.show()
这假设与之前相同的 DataFrame 并在绘图过程中手动分配颜色。
本文演示了如何为使用 matplotlib 在 Python 中进行不同的分类级别,以及使用 seaborn 的其他选项和使用 pandas 的手动方法。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3