我想用列“ 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'])
答案 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