Đây là cách làm từ CSV:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import griddata
# Load data from CSV
dat = np.genfromtxt['dat.xyz', delimiter=' ',skip_header=0]
X_dat = dat[:,0]
Y_dat = dat[:,1]
Z_dat = dat[:,2]
# Convert from pandas dataframes to numpy arrays
X, Y, Z, = np.array[[]], np.array[[]], np.array[[]]
for i in range[len[X_dat]]:
X = np.append[X, X_dat[i]]
Y = np.append[Y, Y_dat[i]]
Z = np.append[Z, Z_dat[i]]
# create x-y points to be used in heatmap
xi = np.linspace[X.min[], X.max[], 1000]
yi = np.linspace[Y.min[], Y.max[], 1000]
# Interpolate for plotting
zi = griddata[[X, Y], Z, [xi[None,:], yi[:,None]], method='cubic']
# I control the range of my colorbar by removing data
# outside of my range of interest
zmin = 3
zmax = 12
zi[[zizmax]] = None
# Create the contour plot
CS = plt.contourf[xi, yi, zi, 15, cmap=plt.cm.rainbow,
vmax=zmax, vmin=zmin]
plt.colorbar[]
plt.show[]
dat.xyz
ở dạng ở đâu
x1 y1 z1
x2 y2 z2
...
Một bản đồ nhiệt 2 chiều là một công cụ trực quan hóa dữ liệu giúp thể hiện độ lớn của hiện tượng dưới dạng màu sắc. Trong Python, chúng ta có thể vẽ đồ thị nhiệt 2 chiều bằng gói matplotlib. Có nhiều phương pháp khác nhau để vẽ các bản đồ nhiệt 2 chiều, một số trong số chúng được thảo luận dưới đây. & NBSP;
Phương pháp 1: Sử dụng hàm matplotlib.pyplot.imshow []
Cú pháp: matplotlib.pyplot.imshow [x, cmap = none, Norm = none, aspect = none, nội suy = none, alpha = none, vmin = none = 1, FilterRad = 4.0, imlim =, respample = none, url = none, \*, data = none, \*\*kwargs] & nbsp;: matplotlib.pyplot.imshow[X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None,
vmax=None, origin=None, extent=None, shape=, filternorm=1, filterrad=4.0,
imlim=, resample=None, url=None, \*, data=None, \*\*kwargs]
Python3
import
numpy as np
import
matplotlib.pyplot as plt
data
=
np.random.random[[
x1 y1 z1
x2 y2 z2
...
0 x1 y1 z1
x2 y2 z2
...
1x1 y1 z1
x2 y2 z2
...
0 x1 y1 z1
x2 y2 z2
...
3x1 y1 z1
x2 y2 z2
...
4=
x1 y1 z1
x2 y2 z2
...
6 x1 y1 z1
x2 y2 z2
...
7=
x1 y1 z1
x2 y2 z2
...
9 dat.xyz
0dat.xyz
1dat.xyz
2 dat.xyz
0
dat.xyz
4
Output:
Phương pháp 2: Sử dụng thư viện Seaborn
Đối với điều này, chúng tôi sử dụng chức năng Seaborn.HeatMap [] seaborn.heatmap[] function
Cú pháp: Seaborn.HeatMap [dữ liệu, *, vmin = none, vmax = none, cmap = none, centre = none, mạnh mẽ = false, annot = none, fmt = '. = 'White', cbar = true, cbar_kws = none, cbar_ax = none, square = false, xticklabels = 'auto', yticklabels = 'auto', mask = none, ax = none, ** kwargs] & nbsp;: seaborn.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]
Python3
import
numpy as np
import
matplotlib.pyplot as plt
data
=
np.random.random[[
x1 y1 z1
x2 y2 z2
...
0 x1 y1 z1
x2 y2 z2
...
1x1 y1 z1
x2 y2 z2
...
0 x1 y1 z1
x2 y2 z2
...
3x1 y1 z1
x2 y2 z2
...
4=
x1 y1 z1
x2 y2 z2
...
6 x1 y1 z1
x2 y2 z2
...
7=
x1 y1 z1
x2 y2 z2
...
9 dat.xyz
0dat.xyz
1dat.xyz
2 dat.xyz
0
dat.xyz
1dat.xyz
2 dat.xyz
0
dat.xyz
4
Output:
Phương pháp 2: Sử dụng thư viện Seaborn
Đối với điều này, chúng tôi sử dụng chức năng Seaborn.HeatMap []: matplotlib.pyplot.pcolormesh[*args, alpha=None, norm=None, cmap=None, vmin=None, vmax=None,
shading=’flat’, antialiased=False, data=None, **kwargs]
Python3
import
matplotlib.pyplot as plt
import
numpy as np
import
5=
import
3import
8
x1 y1 z1
x2 y2 z2
...
1import
8 dat.xyz
0matplotlib.pyplot as plt
2=
matplotlib.pyplot as plt
4 dat.xyz
0
dat.xyz
1matplotlib.pyplot as plt
7 dat.xyz
0
dat.xyz
4
Output: