Nol*_*bus 2 python data-visualization matplotlib
我有一个热图,其中包含一些值 ( model_prediction_i)。因为我想稍后在绘制之前旋转此热图,所以我必须使用plt.imsave. 然后,我的目标是,显示reference.jpg为图的背景,在其上绘图,X_test_i然后将热图也放置在该图上,这样我就可以看到背景、绘制的线和热图,它们的尺寸比背景小图片 -> 它只会遮挡一部分背景图片。作为reference.jpg:
这可能吗?
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
model_prediction_i = np.zeros((200,200))
model_prediction_i[160][160] = 1
model_prediction_i[160][161] = 1
model_prediction_i[160][162] = 1
model_prediction_i[160][163] = 1
model_prediction_i[160][164] = 1
model_prediction_i[160][165] = 1
model_prediction_i[160][166] = 1
model_prediction_i[160][167] = 1
model_prediction_i[160][168] = 1
model_prediction_i[160][169] = 1
model_prediction_i[160][170] = 1
model_prediction_i[160][171] = 1
plt.imsave('outfile.jpg', model_prediction_i, cmap='hot')
rotated_img = Image.open('outfile.jpg')
background = Image.open('reference.jpg')
X_test_i = np.zeros((5, 2))
X_test_i[0] = [10 ,10]
X_test_i[1] = [60 ,60]
X_test_i[2] = [90 ,90]
X_test_i[3] = [140 ,140]
X_test_i[4] = [250 ,230]
fig, ax = plt.subplots(figsize=(10, 10))
ax.plot(X_test_i[:, 0], X_test_i[:, 1], marker='o', markersize=7, color="red", label='Current position', antialiased=True)
ax.imshow(rotated_img, cmap='hot', extent=[X_test_i[:, 0][-1]-10, X_test_i[:, 0][-1]+10, X_test_i[:, 1][-1]-10, X_test_i[:, 1][-1]+10])
ax.imshow(background)
plt.show()
Run Code Online (Sandbox Code Playgroud)
你可以plt.imshow在同一个单元格中叠加两个图像来绘制它们。
from matplotlib import pyplot as plt
plt.figure(figsize = (10,10))
plt.imshow(img_1)
plt.imshow(img_2, alpha=0.5)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6365 次 |
| 最近记录: |