干货收藏 | 秒秒钟学会制作热力图:Pyecharts & Seaborn库

热力图可显性、直观地将数据分布通过不同颜色区块呈现,可以看数据表里多个特征两两的相似度,是我们常用的图表类型之一。

今天,总结了Python代码绘制热力图的方法,代码亲跑无误!
另外,还是老样子,值得深入学习的知识,添加了对应的官方文档链接!

1.利用pyecharts制作热力图

1.1 模块导入:

from pyecharts import options as opts
from pyecharts.charts import HeatMap
from snapshot_selenium import snapshot as driver
from pyecharts.render import make_snapshot
import pandas as pd

1.2 数据准备:

data = pd.read_excel("样本数据.xlsx")
data=round(data.astype("float"))              # 把数值变为浮点数类型,并且去掉浮点数的小数部分
data

输出结果:
干货收藏 | 秒秒钟学会制作热力图:Pyecharts & Seaborn库_第1张图片

添加索引行&列

columns= ['皮肤','发型','强壮','体重和体型','五官','时尚感','性感','年轻','化妆']
index = ['中国','美国','英国','日本','韩国','法国','德国','南非','俄罗斯','意大利','塞尔维亚','澳大利亚']

说明:为什么在Excel数据集中没有直接的文字索引?这里为了方便后面值的索引定位,所以换成了数字。

1.3 对应值匹配:

value= [[y, x, data.loc[x,y]] for x in range(12) for y in range(9)]

说明:这里的x代表index,实际意义表示12个国家,y代表columns,实际意义表示9个外表特质。根据x, y可以定位每个具体的值。

print(value)

部分输出结果:
干货收藏 | 秒秒钟学会制作热力图:Pyecharts & Seaborn库_第2张图片

1.4 热力图绘制及参数设置:

heatmap = HeatMap(init_opts=opts.InitOpts())
heatmap.add_xaxis(columns)
heatmap.add_yaxis("", index, value,label_opts=opts.LabelOpts(is_show=True, position="inside"))
heatmap.set_global_opts( title_opts=opts.TitleOpts(title="各个国家对于男性魅力的理解(外表特质的重要程度)"), 
                        visualmap_opts=opts.VisualMapOpts(),         # 视觉映射配置
                        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30)))      # 将x轴标签旋转

1.5 保存图片:

第一种方式保存为HTML格式

heatmap.render("热力图.html")

第二种方式保存为PNG格式

make_snapshot(driver, heatmap.render(),"热力图.png")

1.6 查看图片:

干货收藏 | 秒秒钟学会制作热力图:Pyecharts & Seaborn库_第3张图片

2.利用seaborn库制作热力图

2.1 模块导入:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

2.2 数据准备

data = pd.read_excel("样本数据.xlsx")
data=round(data.astype("float"))       
x= ['皮肤','发型','强壮','体重和体型','五官','时尚感','性感','年轻','化妆']
y = ['中国','美国','英国','日本','韩国','法国','德国','南非','俄罗斯','意大利','塞尔维亚','澳大利亚']

2.3 热力图绘制及参数设置

plt.rcParams['font.sans-serif']=['simsun']         # 设置中文字体
fig=plt.figure(figsize=(5,5),dpi=800)                # 设置图片大小
ax = sns.heatmap(data, vmin=0, vmax=80, 
                 annot=True,                                     # 设置图标显示范围,
                 linewidths=.5,                                  # 单元格之间添加行
                 cmap="winter",                               # 设置热力图颜色
                 xticklabels=x, yticklabels=y)           # 设置行列标签
plt.xticks(rotation=45)

更多关于seaborn.heatmap的内容,请戳官方链接:http://seaborn.pydata.org/generated/seaborn.heatmap.html

2.4 保存图片

plt.savefig("热力图2.png")

2.5 查看图片

干货收藏 | 秒秒钟学会制作热力图:Pyecharts & Seaborn库_第4张图片

大家可以通过评论或私信的方式提出对本文的建议,也可以通过 点赞 的方式表达对本文的支持!

感谢大家!!!

你可能感兴趣的:(干货收藏 | 秒秒钟学会制作热力图:Pyecharts & Seaborn库)