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()