我在提取以下数据的准确轮廓时遇到了困难:(您只需查看数据就可以看到轮廓)
data = np.array(
[[ 1.46184395, 1.46184395, 1.46184395, 1. , 1. ],
[ 1.46184395, 1.46184395, 1.46184395, 1. , 1. ],
[ 1.46184395, 1.46184395, 1.46184395, 1. , 1. ],
[ 1.46184395, 1.46184395, 1.46184395, 1. , 1. ],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277]])
如果我把它画出来:
plt.imshow(data)
但是,当我try 使用以下命令提取轮廓时:
plt.contour(data, levels = np.unique(data))
如您所见,等高线并不遵循实际数据的锐角.如果我把两个地块都叠起来:
以下是完整的代码:
import numpy as np
import matplotlib.pyplot as plt
data = np.array([[ 1.46184395, 1.46184395, 1.46184395, 1. , 1. ],
[ 1.46184395, 1.46184395, 1.46184395, 1. , 1. ],
[ 1.46184395, 1.46184395, 1.46184395, 1. , 1. ],
[ 1.46184395, 1.46184395, 1.46184395, 1. , 1. ],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277],
[ 1.46184395, 1.46184395, 1.46184395, 4.24552277, 4.24552277]])
plt.imshow(data)
plt.show()
plt.contour(data, levels=np.unique(data), cmap="jet")
plt.colorbar()