Python画日历图

遇到需要统计一年中每天的某个数值,并以日历的方式呈现出来

excel中准备好数据:

1
2
3
4
5
6
7
8
9
# 导入用到的包
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib as mpl
 
file = r'D:/Users/SMAPDIS.xlsx'
df = pd.read_excel(file, sheet_name='Sheet1',index_col='月份')
df.head(10) #观测数据 检查数据的合理性和正确性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 自定义色度条颜色
#y = np.array([255, 255, 0])/255
colors = ['tab:green','yellow','orange','red']
# 自由设定颜色区间
bounds = [0, 20, 40,60, 100]
cm_light = mpl.colors.ListedColormap(colors)
norm = mpl.colors.BoundaryNorm(bounds, cm_light.N)
plt.figure(figsize=(22,6))
# cbar_kws设定颜色标尺的ticks线性分布
ax = sns.heatmap(df, square=True, annot=False, vmin=0, vmax=100, fmt='.0f', linewidths=.2,
                linecolor='black', mask=df<1, cmap=cm_light, norm=norm,
                 cbar_kws={'ticks': bounds, 'spacing':'proportional'})#annot表示是否显示数字 mask中符合条件的看不见
 
# 防止显示不全(有的版本及操作系统会遇到这个问题)
plt.ylim(0, len(df)+.2)
plt.xlim(0, len(df.columns)+0.2)
plt.savefig('D:/Users/smap500dpi.jpg', dpi=500)
plt.savefig('D:/Users/smap500dpi.pdf', dpi=500)#这种更加好看一些
plt.show()

 

posted @   icydengyw  阅读(381)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示