其实之前网上有很多代码
主要是记录一下,首先是对日期的处理,把csv里面的日期,转换成python可以识别的日期,之后又把它转换成月份/日期
我的数据是第一列为日期,其他列的列名都为年份
sb.heatmap之后报错,后来发现需要将index设为日期
以此记录
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sb
from matplotlib import colors
data=pd.read_csv("H:\\mission\\in_index\\CAC4_is_route_1979_2021_date.csv") #extent_LS.csv,encoding='gb18030'
#ex=sb.load_dataset("flights")\
# .pivot("month","year","passengers")
data['date'] = pd.to_datetime(data['date'])
data['date'] = data['date'].dt.strftime('%m/%d')
data = data.set_index(['date'])
data.head()
sb.set_context({"figure.figsize":(8,8)})
cmap = colors.ListedColormap(["salmon", "white","royalblue"])
ax=sb.heatmap(data=data,linewidths=0.3,cmap=cmap,linecolor="black")#,cbar_kws={'label': 'Christmas colorbar'}
colorbar = ax.collections[0].colorbar
colorbar.set_ticks([-0.75,0,0.75])
colorbar.set_ticklabels(['not navigable', 'Nodata','navigable'])
#加了一下colorbar的边框线
colorbar.outline.set_linewidth(2)
colorbar.outline.set_edgecolor('black')
colorbar.outline.set_visible(True)
#colorbar.
ax.set_ylabel('Date')
ax.set_xlabel('Year')
s1 = ax.get_figure()
s1.savefig('H:\mission\plot\is_route_1979_2021_HeatMap.jpg',dpi=300,bbox_inches='tight')