python中idxmax_关于python:如何根据df.idxmax系列制作基于日期的颜色条?

在Python中,作者遇到使用`df.idxmax`生成颜色条的难题。当尝试在散点图上显示每日数据最大值的颜色编码时,出现错误。问题在于`idxmax`生成的颜色序列与有效颜色参数不匹配。通过创建示例数据和调整代码,作者发现问题是由于`idxmax`中缺失的值导致的。解决方案是直接使用`df2[n].max().index`作为颜色数据,而无需`idxmax`和额外处理。
摘要由CSDN通过智能技术生成

Python初学者/第一张海报。

我在添加彩条以散点图时遇到了麻烦。我有两种类型的绘图:一种显示按日期颜色编码的所有数据,另一种显示按日期颜色编码的数据的最大值。在第一种情况下,我可以使用df.index(这是datetime)来制作我的颜色条,但在第二种情况下,我使用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 =)参数的输出,并且两者看起来都类似于我,所以我无法弄清楚为什么一个颜色参数工作,而另一个没有:

一个有效的:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值