如何解决彩条显示一天中的时间
我正在处理散点图。我正在根据一天中的时间绘制颜色图。问题是颜色条将时间显示为小时分数,而不是时间。
我的代码:
plt.scatter(df[x],df[y],c=df.index.hour+df.index.minute/60,cmap='jet')
plt.colorbar()
plt.show()
上面的彩条将时间显示为小数。例如,我想显示17:30
而不是17.5
。
解决方法
您可以为formatter设置一个明确的刻度colorbar。例如(使用matplotlib 3.3.1测试):
plt.colorbar(format=lambda t,pos: f'{math.floor(t):02.0f}:{(t*60)%60:02.0f}')
PS:另一种设置刻度格式器的方法(可能也适用于较旧的matplotlib版本)是显式设置FuncFormatter
:
cbar = plt.colorbar()
cbar.ax.yaxis.set_major_formatter(plt.FuncFormatter(lambda t,pos: f'{math.floor(t):02.0f}:{(t*60)%60:02.0f}'))
或者:
plt.colorbar(format=plt.FuncFormatter(lambda t,pos: f'{math.floor(t):02.0f}:{(t*60)%60:02.0f}'))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。