我在python上使用'tab20'颜色图在matplotlib上绘制以下代码:
colors=[str(float(year-1980)/(2017-1980)) for i in years];
fig,ax = plt.subplots()
ax.scatter(Topic[:,0],Topic[:,1],c=colors,cmap='tab20')
但是我得到的情节是完全灰色的。可能是什么原因?
最佳答案
通过在您的c
调用中将字符串列表传递给ax.scatter
,您可以告诉matplotlib将它们视为颜色格式字符串。由于字符串看起来像代表浮点数,因此将其视为灰度值。如果传递的是浮动列表,则它应正确使用颜色表:colors = [float((year-1980)/(2017-1980)) for year in years]
有关更多详细信息,请参见the docs,尤其是:
cmap
:颜色图,可选,默认:无
Colormap
实例或注册名称。仅当cmap
是
浮点数数组。
(此外,第一行后不需要c
。)