您的位置:

Python绘制热力图

一、Python绘制热力图代码

Python绘制热力图的代码有很多种,这里介绍两种较为常用的方法。

方法1:使用Seaborn库

import seaborn as sns
import matplotlib.pyplot as plt

# 构造数据
data = np.random.rand(10,10)

# 绘制热力图
sns.heatmap(data, cmap = "YlGnBu")

plt.show()

方法2:使用Matplotlib库

import matplotlib.pyplot as plt
import numpy as np

# 构造数据
data = np.random.rand(10,10)

# 绘制热力图
plt.imshow(data, cmap = 'hot', interpolation = 'nearest') 

plt.show()

以上两种方法中,Seaborn库的代码更加简洁,但Matplotlib库的绘图效果更加丰富。

二、Python绘制热力图设置坐标

Python绘制热力图时,往往需要对坐标进行设置,包括横轴和纵轴的标签、刻度、范围等。

import seaborn as sns
import matplotlib.pyplot as plt

# 构造数据
data = np.random.rand(10,10)

# 绘制热力图
sns.heatmap(data, cmap = "YlGnBu", xticklabels = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
            yticklabels = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"], vmin = 0, vmax = 1)

plt.xlabel('Label X', fontsize = 12)
plt.ylabel('Label Y', fontsize = 12)

plt.show()

在上述代码中,我们设置了横轴和纵轴的标签为"Label X"和"Label Y",对应的刻度为"a"到"j"和"1"到"10",同时设置了数据范围为0到1。

三、Python画热力图代码

Python画热力图可以借助Pandas库中的DataFrame对象来进行,具体代码如下:

import pandas as pd
import matplotlib.pyplot as plt

# 构造数据
data_dict = {"A": [1, 2, 3, 4], "B": [5, 6, 7, 8], "C": [9, 10, 11, 12], "D": [13, 14, 15, 16]}
data = pd.DataFrame(data_dict)

# 绘制热力图
plt.imshow(data, cmap = 'hot', interpolation = 'nearest')

plt.xticks(range(len(data.columns)), data.columns)
plt.yticks(range(len(data.index)), data.index)

plt.colorbar()

plt.show()

在上述代码中,我们使用了Pandas的DataFrame对象来储存数据,使用了plt.colorbar()函数来设置颜色刻度条。

四、Python导入数据画热力图

除了手动生成数据,Python也可以从外部文件中导入数据进行热力图绘制。

import pandas as pd
import matplotlib.pyplot as plt

# 从CSV文件中读取数据
data = pd.read_csv('data.csv', index_col = 0)

# 绘制热力图
plt.imshow(data, cmap = 'hot', interpolation = 'nearest')

plt.xticks(range(len(data.columns)), data.columns)
plt.yticks(range(len(data.index)), data.index)

plt.colorbar()

plt.show()

在上述代码中,我们使用了Pandas库中的read_csv函数来读取数据,索引列为第0列。

五、Python热力图怎么看

Python绘制的热力图通常颜色越深表示数值越大,颜色越浅表示数值越小。同时,我们还可以结合刻度条来观察每个颜色对应的数值范围。

在以下例子中,我们导入了一个真实的玉米产量数据,并绘制了热力图。

import pandas as pd
import seaborn as sns

# 从CSV文件中读取数据
data = pd.read_csv('corn.csv', index_col = 0)

# 绘制热力图
sns.heatmap(data, cmap = 'YlGnBu', annot = True, fmt = '.1f')

plt.show()

Corn Production Heatmap

通过观察热力图,我们可以发现2004年、2012年以及2013年玉米产量最高,而2000年的玉米产量最低,且近几年的玉米产量呈逐年上升之势。

六、Python数据可视化热力图

Python中除了使用热力图来展示二维数据外,还可以使用三维热力图来展示三维或以上的数据。以下代码演示了如何生成三维热力图:

import plotly.graph_objs as go
import plotly.offline as pyo
import pandas as pd
 
# 从CSV文件中读取数据
data = pd.read_csv('food.csv')

# 绘制三维热力图
data_heatmap = go.Heatmap(z = data.iloc[:,2], x = data.iloc[:,0], y = data.iloc[:,1], colorbar=dict(title="Colorbar"))
 
layout = go.Layout(title = '3D Heatmap', )
fig = go.Figure(data=[data_heatmap], layout=layout)
 
pyo.plot(fig)

在上述代码中,我们使用了Plotly库来生成三维热力图,需要先通过pip install plotly进行安装。同时,我们还需要使用Pandas库来读取数据。

七、Python绘制热力图的函数

在Python中,我们还可以编写函数来绘制热力图,以方便后续使用。

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

def plot_heatmap(data, title, x_labels, y_labels, cmap):

    # 绘制热力图
    sns.heatmap(data, cmap = cmap)

    plt.title(title, fontsize  = 14)

    plt.xlabel('X Label', fontsize = 12)
    plt.xticks(np.arange(len(x_labels)) + 0.5, x_labels)
    
    plt.ylabel('Y Label', fontsize = 12)
    plt.yticks(np.arange(len(y_labels)) + 0.5, y_labels)

    plt.show()

# 调用函数绘制热力图
data = np.random.rand(10,10)
x_labels = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
y_labels = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
title = "Heatmap Example"
cmap = "YlGnBu"

plot_heatmap(data, title, x_labels, y_labels, cmap)

在上述代码中,我们定义了一个名为plot_heatmap的函数,并通过调用该函数来绘制热力图。在函数中,我们可以设置热力图的标题、标签、颜色映射等。

八、Python绘制热力图的库

Python中常用的绘制热力图的库主要有Seaborn和Matplotlib。

Seaborn库

Seaborn是基于Matplotlib的数据可视化库,专门用于统计绘图。使用Seaborn库,我们可以轻松地绘制热力图、散点图、线图、条形图等多种类型的图表,并提供了丰富的自定义选项。

Matplotlib库

Matplotlib是Python中最常用的数据可视化库之一,可以绘制出各种类型的图表,包括散点图、线图、条形图、热力图等。Matplotlib库具有丰富的自定义选项,允许用户灵活地控制图表的各个方面。

九、Python绘制热力图导入什么

在Python中,绘制热力图需要导入以下库:

  • Seaborn库(可选):用于绘制热力图、设置颜色映射等
  • Matplotlib库:用于绘制各种类型的图表,包括热力图
  • Numpy库(可选):用于生成随机数据等
  • Pandas库(可选):用于读取外部文件、构造DataFrame等

可以根据实际需要导入相应的库来绘制热力图。

十、Python绘制地图热力图

除了对二维数据进行热力图绘制外,Python还可以对地图数据进行热力图绘制。以下是一个简单的地图热力图绘制示例:

import folium
from folium.plugins import HeatMap

# 构造数据
locations = [[31.238068, 121.501654], [31.224632, 121.469796], [31.232673, 121.494752], [31.232585, 121.488436], [31.252121, 121.498117], 
             [31.228466, 121.455675], [31.223696, 121.454735], [31.246602, 121.461899], [31.239046, 121.469881], [31.191304, 121.589614],
             [31.159942, 121.364443], [31.392771, 121.410471], [31.220451, 121.547946], [31.19594, 121.618191], [31.24245, 121.505279], 
             [31.203624, 121.598726], [31.054153, 121.752955], [31.201554, 121.458754], [31.196121, 121.441206], [31.24693, 121.450372]]

# 绘制地图
map_heatmap = folium.Map(location = [31.2317066, 121.4726406], zoom_start = 12)
HeatMap(locations).add_to(map_heatmap)

# 显示地图
map_heatmap

以上代码使用了Folium库来绘制地图及热力图,需要先通过pip install folium进行安装。通过构造locations列表并通过HeatMap函数来绘制热力图,并通过Folium库将之嵌入到地图中。

Shanghai Map Heatmap