Python画日历图

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

excel中准备好数据:

# 导入用到的包
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) #观测数据 检查数据的合理性和正确性

# 自定义色度条颜色
#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 @ 2023-01-01 11:29  icydengyw  阅读(305)  评论(0编辑  收藏  举报