【发布时间】:2021-01-15 13:51:34
【问题描述】:
您好,我正在尝试创建一个散点图,其中每个 X、Y 变量组合属于特定类别,因此在散点图中我希望每个类别具有不同的颜色。
我能够按照下面的代码实现这一点。但是,如果我在绘图上看到的颜色条上有类别名称而不是数值,它会更有意义。
任何指针将不胜感激。
我知道 seaborn 可能会让它变得更容易,但我特意寻找基于 matplotlib 的解决方案。
import numpy
import pandas
import matplotlib.pyplot as plt
numpy.random.seed(0)
N = 50
_categories= ['A', 'B', 'C', 'D']
df = pandas.DataFrame({
'VarX': numpy.random.uniform(low=130, high=200, size=N),
'VarY': numpy.random.uniform(low=30, high=100, size=N),
'Category': numpy.random.choice(_categories, size=N)
})
colorMap = {}
k = 0
for i in _categories:
colorMap[_categories[k]] = k
k+=1
plt.figure(figsize=(15,5))
plt.scatter(df.VarX, df.VarY, c= df.Category.map(colorMap), cmap='viridis')
plt.colorbar()
plt.show()
这段代码产生
【问题讨论】:
标签: python pandas matplotlib scatter-plot colorbar