Python初学者/第一张海报在这里。
我在向散点图添加颜色条时遇到了麻烦。我有两种类型的图:一种显示按日期颜色编码的所有数据,另一种仅显示按日期颜色编码的数据的最大值。在第一种情况下,我可以使用 df.index(这是日期时间)来制作我的颜色条,但在第二种情况下,我使用 df2['col'].idxmax 来生成颜色,因为我的 df2 是一个 df我用来在我的数据中生成每日最大值的 .groupby 对象,它没有可访问的索引。
对于第一种类型的图,我已经成功地使用以下代码生成了基于日期的颜色条,这些代码是从在线示例拼凑而成的:
fig, ax = plt.subplots(1,1, figsize=(20,20))
smap=plt.scatter(df.col1, df.col2, s=140,
c=[date2num(i.date()) for i in df.index],
marker='.')
cb = fig.colorbar(smap, orientation='vertical',
format=DateFormatter('%d %b %y'))
但是,对于第二种类型的图,我尝试使用 df2['col'].idxmax 来创建日期系列而不是 df.index,以下不起作用:
for n in cols1:
for m in cols2:
fig, ax = plt.subplots(1,1, figsize=(15,15))
maxTimes=df2[n].idxmax()
PlottableTimes=maxTimes.dropna() #some NaNs in the
#.idxmax series were giving date2num trouble
smap2=plt.scatter(df2[n].max(), df2[m].max(),
s=160, c=[date2num(i.date()) for i in PlottableTimes],
marker='.')
cb2 = fig.colorbar(smap2, orientation='vertical',
format=DateFormatter('%d %b %y'))
plt.show()
错误是:'rgba 序列的长度应该是 3 或 4'
因为错误是抱怨颜色参数,所以我在各自的绘图命令中分别检查了颜色(即 c=)参数的输出,两者看起来都与我相似,所以我无法弄清楚为什么有一个颜色参数有效而另一个无效:
一个有效的:
[736809.0, 736809.0, 736809.0, 736809.0, 736809.0, 736809.0, 736809.0, 736809.0, 736809.0, 736809] ...
一个不起作用:
[736845.0, 736846.0, 736847.0, 736848.0, 736849.0, 736850.0, 736851.0, 736852.0, 736853.0, 736854] ...
有什么建议或解释吗?我正在运行 python 3.5.2。预先感谢您帮助我理解这一点。
至尊宝的传说
相关分类