欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【数据分析】seaborn.heatmap绘制热力图

程序员文章站 2022-07-14 10:06:01
...
import pandas as pd
import seaborn
import matplotlib.pyplot as plt

df = pd.read_csv("flights.csv")
df = df.pivot(index="month", columns="year", values="passengers")
seaborn.heatmap(df, annot=True, fmt='d', annot_kws={'size': 12, 'weight': 'bold'}, cmap='Blues')
plt.show()

【数据分析】seaborn.heatmap绘制热力图
函数pivot(self, index=None, columns=None, values=None)将原有的df转换成以index为行索引,columns为列索引的DataFrame结构,索引处的值即为values
原df:

 year      month  passengers
0    1949    January         112
1    1949   February         118
2    1949      March         132
3    1949      April         129
4    1949        May         121
..    ...        ...         ...
139  1960     August         606
140  1960  September         508
141  1960    October         461
142  1960   November         390
143  1960   December         432

[144 rows x 3 columns]

转换后的df:

year       1949  1950  1951  1952  1953  ...  1956  1957  1958  1959  1960
month                                    ...                              
April       129   135   163   181   235  ...   313   348   348   396   461
August      148   170   199   242   272  ...   405   467   505   559   606
December    118   140   166   194   201  ...   306   336   337   405   432
February    118   126   150   180   196  ...   277   301   318   342   391
January     112   115   145   171   196  ...   284   315   340   360   417
July        148   170   199   230   264  ...   413   465   491   548   622
June        135   149   178   218   243  ...   374   422   435   472   535
March       132   141   178   193   236  ...   317   356   362   406   419
May         121   125   172   183   229  ...   318   355   363   420   472
November    104   114   146   172   180  ...   271   305   310   362   390
October     119   133   162   191   211  ...   306   347   359   407   461
September   136   158   184   209   237  ...   355   404   404   463   508

[12 rows x 12 columns]
def heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False,
            annot=None, fmt=".2g", annot_kws=None,
            linewidths=0, linecolor="white",
            cbar=True, cbar_kws=None, cbar_ax=None,
            square=False, xticklabels="auto", yticklabels="auto",
            mask=None, ax=None, **kwargs):

heatmap参数重多,具体可以看官方文档。这里只简单说一下程序中用到的几个参数。
1.annot:annotate的缩写,意为注释,为True标注行列索引处的值,False则不标注。
2.fmt:注释的格式,默认为".2g",保留两位有效数字,并转为科学计数法。可以自定义设置成"d"——整数输出、" f "——浮点数输出等。
3.annot_kws:只有当annot为True时才设置该参数。该参数为设置注释数字的大小,加粗,斜体、颜色等。
4.cmap:背景填充色,应为渐变色,可取的颜色可以看matplotlib的官方文档,即此链接matplotlib Version3.3.0