使用python绘制热力图
一、使用python导入csv文件绘制热力图
本次使用的数据 数据结构如图,只保留了一个索引,因为下面矩阵化的过程不能有非数值型的数据

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、使用步骤
1.直接上代码
代码如下(示例):
# 导包
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
import pandas as pd
import xlrd
# 读取csv文件并进行矩阵化,这里必须全是数字才能转化
my_matrix = np.loadtxt(open("hotmap.csv","rb"),delimiter=",",skiprows=0)
# 对矩阵进行转置 并取第一列作为纵轴索引index
index=my_matrix.T[:,0]
# 取转置后的第一到最后列作为绘图的数据
x=my_matrix.T[:,1:]
# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 设置绘图区域大小40*40
fig, ax = plt.subplots(figsize = (40,40))
# 绘制热力图 x是纯数据,columns是x轴的索引,index是纵轴索引
sns.heatmap(pd.DataFrame(x, columns = ['9:00', '9:15', '9:30',"9:45","10:00","10:15","10:30","10:45"], index = index),
vmax=1,vmin = 0, xticklabels= True, yticklabels= True, square=True, cmap="rainbow")
# 设置图名
ax.set_title('二维数组热力图', fontsize = 18)
# 设置Y轴名字
ax.set_ylabel('site', fontsize = 18)
# 设置x轴名字
ax.set_xlabel('time', fontsize = 18)
2.效果图
图太长只截取部分

2547

被折叠的 条评论
为什么被折叠?



