This is an embedded juipyter notebook file that I created to make a heatmap of SWE over 2 decades period at Mores Creek Summit, Boise. The data used in this article can be downloaded from USDA.
As usual, the first thing is to import all required packages.
# import modules
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import glob
import os
import matplotlib.pyplot as plt
import seaborn as sns
#Print the current working directory
os.getcwd()
Out[ ]:
'/home/naheemadebisi/PhD/snow-analytics/Lowman'
# use the glob function of the glob modeule to return a list of all csv files
data_dir = glob.glob('MCS_SNOWTEL/SWE/*.csv')
data_dir
Out[ ]:
['MCS_SNOWTEL/SWE/637_26_WATERYEAR=2015.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2021.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2009.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2019.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2017.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2006.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2002.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2008.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2012.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2018.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2005.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2007.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2000.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2014.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2003.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2013.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2022.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2016.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2020.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2004.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2001.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2011.csv', 'MCS_SNOWTEL/SWE/637_26_WATERYEAR=2010.csv']
#read the csv files into a list of dataframes
dataframes = []
for file in data_dir:
dataframes.append(pd.read_csv(file, header=1,index_col= 'Date', usecols= ['Date', 'WTEQ.I-1 (in) '], na_values = -99.9))
dataframes
Out[ ]:
[ WTEQ.I-1 (in) Date 2014-10-01 0.0 2014-10-02 0.0 2014-10-03 0.0 2014-10-04 0.0 2014-10-05 0.0 ... ... 2015-09-27 0.0 2015-09-28 0.0 2015-09-29 0.0 2015-09-30 0.0 2015-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2020-10-01 0.0 2020-10-02 0.0 2020-10-03 0.0 2020-10-04 0.0 2020-10-05 0.0 ... ... 2021-09-27 0.0 2021-09-28 0.0 2021-09-29 0.0 2021-09-30 0.0 2021-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2008-10-01 0.0 2008-10-02 0.0 2008-10-03 0.0 2008-10-04 0.0 2008-10-05 0.0 ... ... 2009-09-27 0.0 2009-09-28 0.0 2009-09-29 0.0 2009-09-30 0.0 2009-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2018-10-01 0.0 2018-10-02 0.0 2018-10-03 0.0 2018-10-04 0.0 2018-10-05 0.0 ... ... 2019-09-27 0.0 2019-09-28 0.0 2019-09-29 0.0 2019-09-30 0.0 2019-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2016-10-01 0.0 2016-10-02 0.0 2016-10-03 0.0 2016-10-04 0.0 2016-10-05 0.0 ... ... 2017-09-27 0.0 2017-09-28 0.0 2017-09-29 0.0 2017-09-30 0.0 2017-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2005-10-01 0.0 2005-10-02 0.0 2005-10-03 0.0 2005-10-04 0.0 2005-10-05 0.0 ... ... 2006-09-27 0.0 2006-09-28 0.0 2006-09-29 0.0 2006-09-30 0.0 2006-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2001-10-01 0.0 2001-10-02 0.0 2001-10-03 0.0 2001-10-04 0.0 2001-10-05 0.0 ... ... 2002-09-27 0.0 2002-09-28 0.0 2002-09-29 0.0 2002-09-30 0.0 2002-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2007-10-01 0.0 2007-10-02 0.0 2007-10-03 0.0 2007-10-04 0.0 2007-10-05 0.0 ... ... 2008-09-27 0.0 2008-09-28 0.0 2008-09-29 0.0 2008-09-30 0.0 2008-09-30 NaN [367 rows x 1 columns], WTEQ.I-1 (in) Date 2011-10-01 0.0 2011-10-02 0.0 2011-10-03 0.0 2011-10-04 0.0 2011-10-05 0.0 ... ... 2012-09-27 0.0 2012-09-28 0.0 2012-09-29 0.0 2012-09-30 0.0 2012-09-30 NaN [367 rows x 1 columns], WTEQ.I-1 (in) Date 2017-10-01 0.0 2017-10-02 0.0 2017-10-03 0.0 2017-10-04 0.0 2017-10-05 0.0 ... ... 2018-09-27 0.0 2018-09-28 0.0 2018-09-29 0.0 2018-09-30 0.0 2018-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2004-10-01 0.0 2004-10-02 0.0 2004-10-03 0.0 2004-10-04 0.0 2004-10-05 0.0 ... ... 2005-09-27 0.0 2005-09-28 0.0 2005-09-29 0.0 2005-09-30 0.0 2005-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2006-10-01 0.0 2006-10-02 0.0 2006-10-03 0.0 2006-10-04 0.0 2006-10-05 0.0 ... ... 2007-09-27 0.0 2007-09-28 0.0 2007-09-29 0.0 2007-09-30 0.0 2007-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 1999-10-01 0.0 1999-10-02 0.0 1999-10-03 0.0 1999-10-04 0.0 1999-10-05 0.0 ... ... 2000-09-27 0.0 2000-09-28 0.0 2000-09-29 0.0 2000-09-30 0.0 2000-09-30 NaN [367 rows x 1 columns], WTEQ.I-1 (in) Date 2013-10-01 0.0 2013-10-02 0.0 2013-10-03 0.0 2013-10-04 0.0 2013-10-05 0.0 ... ... 2014-09-27 0.0 2014-09-28 0.0 2014-09-29 0.0 2014-09-30 0.0 2014-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2002-10-01 0.0 2002-10-02 0.0 2002-10-03 0.0 2002-10-04 0.0 2002-10-05 0.0 ... ... 2003-09-27 0.0 2003-09-28 0.0 2003-09-29 0.0 2003-09-30 0.0 2003-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2012-10-01 0.0 2012-10-02 0.0 2012-10-03 0.0 2012-10-04 0.0 2012-10-05 0.0 ... ... 2013-09-27 0.0 2013-09-28 0.0 2013-09-29 0.0 2013-09-30 0.0 2013-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2021-10-01 0.0 2021-10-02 0.0 2021-10-03 0.0 2021-10-04 0.0 2021-10-05 0.0 ... ... 2022-03-16 21.7 2022-03-17 21.6 2022-03-18 21.6 2022-03-19 21.5 2022-03-20 21.4 [171 rows x 1 columns], WTEQ.I-1 (in) Date 2015-10-01 0.0 2015-10-02 0.0 2015-10-03 0.0 2015-10-04 0.0 2015-10-05 0.0 ... ... 2016-09-27 0.0 2016-09-28 0.0 2016-09-29 0.0 2016-09-30 0.0 2016-09-30 NaN [367 rows x 1 columns], WTEQ.I-1 (in) Date 2019-10-01 0.0 2019-10-02 0.0 2019-10-03 0.0 2019-10-04 0.0 2019-10-05 0.0 ... ... 2020-09-27 0.0 2020-09-28 0.0 2020-09-29 0.0 2020-09-30 0.0 2020-09-30 NaN [367 rows x 1 columns], WTEQ.I-1 (in) Date 2003-10-01 0.0 2003-10-02 0.0 2003-10-03 0.0 2003-10-04 0.0 2003-10-05 0.0 ... ... 2004-09-27 0.0 2004-09-28 0.0 2004-09-29 0.0 2004-09-30 0.0 2004-09-30 NaN [367 rows x 1 columns], WTEQ.I-1 (in) Date 2000-10-01 0.0 2000-10-02 0.0 2000-10-03 0.0 2000-10-04 0.0 2000-10-05 0.0 ... ... 2001-09-27 0.0 2001-09-28 0.0 2001-09-29 0.0 2001-09-30 0.0 2001-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2010-10-01 0.0 2010-10-02 0.0 2010-10-03 0.0 2010-10-04 0.0 2010-10-05 0.0 ... ... 2011-09-27 0.0 2011-09-28 0.0 2011-09-29 0.0 2011-09-30 0.0 2011-09-30 NaN [366 rows x 1 columns], WTEQ.I-1 (in) Date 2009-10-01 0.0 2009-10-02 0.0 2009-10-03 0.0 2009-10-04 1.0 2009-10-05 1.7 ... ... 2010-09-27 0.0 2010-09-28 0.0 2010-09-29 0.0 2010-09-30 0.0 2010-09-30 NaN [366 rows x 1 columns]]
#concatenate the dataframes into one dataframe and sort based on date index
df = pd.concat(dataframes).sort_index()
df
Out[ ]:
WTEQ.I-1 (in) | |
---|---|
Date | |
1999-10-01 | 0.0 |
1999-10-02 | 0.0 |
1999-10-03 | 0.0 |
1999-10-04 | 0.0 |
1999-10-05 | 0.0 |
… | … |
2022-03-16 | 21.7 |
2022-03-17 | 21.6 |
2022-03-18 | 21.6 |
2022-03-19 | 21.5 |
2022-03-20 | 21.4 |
8229 rows × 1 columns
df.columns
Out[ ]:
Index(['WTEQ.I-1 (in) '], dtype='object')
#display the data frame info
df.info()
<class 'pandas.core.frame.DataFrame'> Index: 8229 entries, 1999-10-01 to 2022-03-20 Data columns (total 1 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 WTEQ.I-1 (in) 8207 non-null float64 dtypes: float64(1) memory usage: 128.6+ KB
#find the min and max of the dataframe
print('The min of values in the dataframe is {} \nThe max is {}'.format(df['WTEQ.I-1 (in) '].min(),df['WTEQ.I-1 (in) '].max()))
The min of values in the dataframe is 0.0 The max is 42.6
# count the number of null values in the dataframe
df['WTEQ.I-1 (in) '].isnull().sum()
Out[ ]:
22
Since there are only 22 NAN values out of the 8k data, we can drop the null values.
# drop the null values
df = df.dropna()
df['WTEQ.I-1 (in) '].isnull().sum()
Out[ ]:
0
#Set to datetime format
df.index = pd.to_datetime(df.index)
df
Out[ ]:
WTEQ.I-1 (in) | |
---|---|
Date | |
1999-10-01 | 0.0 |
1999-10-02 | 0.0 |
1999-10-03 | 0.0 |
1999-10-04 | 0.0 |
1999-10-05 | 0.0 |
… | … |
2022-03-16 | 21.7 |
2022-03-17 | 21.6 |
2022-03-18 | 21.6 |
2022-03-19 | 21.5 |
2022-03-20 | 21.4 |
8207 rows × 1 columns
# calculate the monthly mean
df_monthly = df.resample('M').mean()
df_monthly
Out[ ]:
WTEQ.I-1 (in) | |
---|---|
Date | |
1999-10-31 | 0.000000 |
1999-11-30 | 0.760000 |
1999-12-31 | 7.170968 |
2000-01-31 | 15.870968 |
2000-02-29 | 22.634483 |
… | … |
2021-11-30 | 1.356667 |
2021-12-31 | 6.383871 |
2022-01-31 | 17.670968 |
2022-02-28 | 18.996429 |
2022-03-31 | 20.550000 |
270 rows × 1 columns
#change the unit of the SWE values to centimeter
df_monthly['SWE (cm)'] = df_monthly['WTEQ.I-1 (in) '] * 2.54
df_monthly
Out[ ]:
WTEQ.I-1 (in) | SWE (cm) | |
---|---|---|
Date | ||
1999-10-31 | 0.000000 | 0.000000 |
1999-11-30 | 0.760000 | 1.930400 |
1999-12-31 | 7.170968 | 18.214258 |
2000-01-31 | 15.870968 | 40.312258 |
2000-02-29 | 22.634483 | 57.491586 |
… | … | … |
2021-11-30 | 1.356667 | 3.445933 |
2021-12-31 | 6.383871 | 16.215032 |
2022-01-31 | 17.670968 | 44.884258 |
2022-02-28 | 18.996429 | 48.250929 |
2022-03-31 | 20.550000 | 52.197000 |
270 rows × 2 columns
# Create a column of the month and year
df_monthly['Month'] = df_monthly.index.month_name()
df_monthly['Year'] = df_monthly.index.year
df_monthly
Out[ ]:
WTEQ.I-1 (in) | SWE (cm) | Month | Year | |
---|---|---|---|---|
Date | ||||
1999-10-31 | 0.000000 | 0.000000 | October | 1999 |
1999-11-30 | 0.760000 | 1.930400 | November | 1999 |
1999-12-31 | 7.170968 | 18.214258 | December | 1999 |
2000-01-31 | 15.870968 | 40.312258 | January | 2000 |
2000-02-29 | 22.634483 | 57.491586 | February | 2000 |
… | … | … | … | … |
2021-11-30 | 1.356667 | 3.445933 | November | 2021 |
2021-12-31 | 6.383871 | 16.215032 | December | 2021 |
2022-01-31 | 17.670968 | 44.884258 | January | 2022 |
2022-02-28 | 18.996429 | 48.250929 | February | 2022 |
2022-03-31 | 20.550000 | 52.197000 | March | 2022 |
270 rows × 4 columns
#pivot the dataframe to ctabularize the monthly mean
df_monthly_pivot = df_monthly.pivot("Month", "Year", "SWE (cm)") #drop column
df_monthly_pivot
Out[ ]:
Year | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | … | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Month | |||||||||||||||||||||
April | NaN | 65.311867 | 41.164933 | 75.793600 | 68.072000 | 70.459600 | 45.017267 | 104.495600 | 52.874333 | 85.301667 | … | 33.020000 | 80.484133 | 39.539333 | 63.965667 | 81.948867 | 46.007867 | 83.083400 | 60.790667 | 51.011667 | NaN |
August | NaN | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | … | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
December | 18.214258 | 18.066774 | 32.020387 | 14.945032 | 26.530710 | 19.426903 | 29.013355 | 23.138581 | 12.986774 | 13.593097 | … | 17.591548 | 22.966516 | 28.841290 | 18.353548 | 10.512323 | 14.437032 | 11.053097 | 21.082000 | 16.215032 | NaN |
February | NaN | 57.491586 | 34.181143 | 63.500000 | 46.645286 | 70.366759 | 31.532286 | 85.398429 | 47.643143 | 65.356828 | … | 27.803929 | 50.645786 | 50.019857 | 66.950897 | 74.403857 | 34.480500 | 55.526214 | 54.758897 | 55.535286 | 48.250929 |
January | NaN | 40.312258 | 28.513548 | 48.571355 | 36.920129 | 55.486710 | 28.185806 | 62.107097 | 40.533484 | 40.623613 | … | 20.705097 | 28.030129 | 41.762516 | 50.742645 | 45.752774 | 22.007871 | 29.816323 | 33.429677 | 39.624000 | 44.884258 |
July | NaN | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | … | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
June | NaN | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.033867 | 0.000000 | 0.550333 | … | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
March | NaN | 73.938581 | 38.616194 | 76.216387 | 61.992387 | 79.100516 | 36.125355 | 94.586323 | 61.820323 | 75.593677 | … | 34.896323 | 73.045484 | 46.129677 | 77.560129 | 94.414258 | 50.414903 | 88.588645 | 61.123871 | 69.538645 | 52.197000 |
May | NaN | 18.853355 | 8.504903 | 33.929484 | 43.302903 | 15.715226 | 14.010968 | 50.111742 | 9.479935 | 49.882323 | … | 3.269226 | 40.476129 | 2.179484 | 10.831871 | 23.654774 | 2.548194 | 20.393742 | 7.792065 | 3.449484 | NaN |
November | 1.930400 | 5.317067 | 2.726267 | 6.172200 | 6.468533 | 6.383867 | 12.352867 | 5.935133 | 1.049867 | 3.454400 | … | 5.240867 | 5.579533 | 4.597400 | 0.474133 | 5.850467 | 1.845733 | 1.735667 | 9.050867 | 3.445933 | NaN |
October | 0.000000 | 0.991419 | 0.122903 | 0.000000 | 0.000000 | 1.229032 | 0.000000 | 0.000000 | 0.286774 | 0.073742 | … | 0.000000 | 0.024581 | 0.024581 | 0.106516 | 1.302774 | 0.000000 | 0.778387 | 0.000000 | 0.000000 | NaN |
September | NaN | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | … | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
12 rows × 24 columns
#sort by string month column and drop the 1999 column
df_monthly_pivot.index = pd.Categorical(df_monthly_pivot.index,
categories=['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
ordered=True)
df_monthly_pivot.drop(1999, axis=1, inplace=True)
df_monthly_pivot = df_monthly_pivot.sort_index()
df_monthly_pivot
Out[ ]:
Year | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | … | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
January | 40.312258 | 28.513548 | 48.571355 | 36.920129 | 55.486710 | 28.185806 | 62.107097 | 40.533484 | 40.623613 | 39.951742 | … | 20.705097 | 28.030129 | 41.762516 | 50.742645 | 45.752774 | 22.007871 | 29.816323 | 33.429677 | 39.624000 | 44.884258 |
February | 57.491586 | 34.181143 | 63.500000 | 46.645286 | 70.366759 | 31.532286 | 85.398429 | 47.643143 | 65.356828 | 45.411571 | … | 27.803929 | 50.645786 | 50.019857 | 66.950897 | 74.403857 | 34.480500 | 55.526214 | 54.758897 | 55.535286 | 48.250929 |
March | 73.938581 | 38.616194 | 76.216387 | 61.992387 | 79.100516 | 36.125355 | 94.586323 | 61.820323 | 75.593677 | 61.254968 | … | 34.896323 | 73.045484 | 46.129677 | 77.560129 | 94.414258 | 50.414903 | 88.588645 | 61.123871 | 69.538645 | 52.197000 |
April | 65.311867 | 41.164933 | 75.793600 | 68.072000 | 70.459600 | 45.017267 | 104.495600 | 52.874333 | 85.301667 | 70.366467 | … | 33.020000 | 80.484133 | 39.539333 | 63.965667 | 81.948867 | 46.007867 | 83.083400 | 60.790667 | 51.011667 | NaN |
May | 18.853355 | 8.504903 | 33.929484 | 43.302903 | 15.715226 | 14.010968 | 50.111742 | 9.479935 | 49.882323 | 36.125355 | … | 3.269226 | 40.476129 | 2.179484 | 10.831871 | 23.654774 | 2.548194 | 20.393742 | 7.792065 | 3.449484 | NaN |
June | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.033867 | 0.000000 | 0.550333 | 0.000000 | … | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
July | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | … | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
August | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | … | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
September | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | … | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
October | 0.991419 | 0.122903 | 0.000000 | 0.000000 | 1.229032 | 0.000000 | 0.000000 | 0.286774 | 0.073742 | 1.483032 | … | 0.000000 | 0.024581 | 0.024581 | 0.106516 | 1.302774 | 0.000000 | 0.778387 | 0.000000 | 0.000000 | NaN |
November | 5.317067 | 2.726267 | 6.172200 | 6.468533 | 6.383867 | 12.352867 | 5.935133 | 1.049867 | 3.454400 | 4.055533 | … | 5.240867 | 5.579533 | 4.597400 | 0.474133 | 5.850467 | 1.845733 | 1.735667 | 9.050867 | 3.445933 | NaN |
December | 18.066774 | 32.020387 | 14.945032 | 26.530710 | 19.426903 | 29.013355 | 23.138581 | 12.986774 | 13.593097 | 14.281355 | … | 17.591548 | 22.966516 | 28.841290 | 18.353548 | 10.512323 | 14.437032 | 11.053097 | 21.082000 | 16.215032 | NaN |
12 rows × 23 columns
# Set font size and font family
plt.rcParams.update({'font.size': 18})
plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = ['Times New Roman'] + plt.rcParams['font.serif']
#create a figure and axes elements
fig, ax = plt.subplots(figsize=(13,9), constrained_layout=True)
#create a heatmap of the monthly mean using seaborn
sns.heatmap(df_monthly_pivot, linewidth = .5, cmap = 'YlGnBu', ax=ax)
#set title
ax.set_title('Monthly Mean SWE (cm) at Mores Creek Summit, ID')
plt.show()
#save the figure
fig.savefig('Monthly_Mean_SWE.jpeg', dpi=500)
In [ ]: