对不同类别使用不同颜色的散点图

时间:2019-12-23 17:35:37

标签: python pandas matplotlib scatter-plot

我想用列“ x”,“ y”,“类型”(以及其他列和数千行)来散布熊猫数据帧,其中x,y为浮点,“类型”为字符串,即或者说“梨”,“苹果”或“香蕉”。我想根据类型在(x,y)处绘制颜色。

我尝试过:

df.plot.scatter(x='x', y='y', c='type', colormap=cmap)

具有类似

的定义
cmap = colormap_from_dict({ 'pear': 'red', 'apple': 'blue', 'banana': 'yellow' })

但是我找不到这样的函数“ colormap_from_dict” ...您有解决方案吗?谢谢。


对于记录,DataFrame如下所示:

df = pd.DataFrame([[1, 2, 'banana'], [2, 1, 'apple'], [3, 3, 'pear']], columns=['x', 'y', 'type'])

2 个答案:

答案 0 :(得分:1)

您可以通过lambda函数应用颜色。

尝试一下:

from matplotlib import pyplot as plt
import pandas as pd

df = pd.DataFrame([[1, 2, 'banana'], [2, 1, 'apple'], [3, 3, 'pear']], columns=['x', 'y', 'type'])
colors = { 'pear': 'red', 'apple': 'blue', 'banana': 'yellow' }

df.plot.scatter(x='x', y='y', c=df['type'].apply(lambda x: colors[x]))
plt.show()

答案 1 :(得分:1)

我强烈建议您查看Seaborn的所有分类数据可视化。这是他们的散点图功能:https://seaborn.pydata.org/generated/seaborn.scatterplot.html?highlight=scatterplot#seaborn.scatterplot