前几天帮一个朋友画了一个图,他要求画出来每个产品分类下年和月数量下的热力子图,结果大概是这个样子:

本来觉得直接用seaborn的facetgrid就可以,但是写的时候发现热力图有些不一样,它要求输入的数据格式不同。热力图的横纵坐标是年月标签,不像别的图像是散点图,横坐标是标签,纵坐标表示数据;
主要实现代码如下:

可以看到,需要先建立一个循环遍历“产品分类”中的所有类别,然后用pivot_table进行数据聚合,按产品分类进行求和;数据准备好后,设置子图格式:subplot(3,4,i+1)画一个3行4列的子图,i表示每次子图的位置+1,定位到子图位置后直接调用sns.heatmap()热力图函数就可以了;循环完后要加tight_layout()调整子图之间的间隔来减少堆叠。
如果是其他图的话,用facetgrid,直接设置col="产品分类"就行(col_wrap来设置每行的子图个数)
例如下图是画出每个类别下每年的数量的散点图:


文章转载自每日一Python,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




