我想在matshow中看到比例尺,我找了很长时间,没有找到答案。我怎么做?
代码很简单:
def analyze_results():
l_points = [np.array([10, 9, -1]), np.array([-4, 4, 1]), np.array([-6, 2, -1]), np.array([ 7, -2, 1]), np.array([-3, 2, -1]), np.array([ 3, -5, -1]), np.array([-5, 10, 1]), np.array([-10, 9, -1]), np.array([ 4, -4, 1]), np.array([-4, 7, 1])]
num_elemnts = 2 * const_limit + 1
loss = np.zeros((num_elemnts, num_elemnts))
for i in range(-const_limit, const_limit + 1):
for j in range(-const_limit, const_limit + 1):
if ((i == 0) & (j == 0)):
continue
w = (i, j)
loss[i, j] , _ = gradient_hinge_loss(l_points, w)
return loss
if __name__ == '__main__':
loss_hinge_debugger = analyze_results()
plt.matshow(loss_hinge_debugger)
plt.show()
Run Code Online (Sandbox Code Playgroud)
据我所知,比例尺不是matplotlib本机功能的一部分。您可以通过使用matplotlib-scalebar做到这一点。在链接中,您将找到一个代码示例:
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
from matplotlib_scalebar.scalebar import ScaleBar
plt.figure()
image = plt.imread(cbook.get_sample_data('grace_hopper.png'))
plt.imshow(image)
scalebar = ScaleBar(0.2) # 1 pixel = 0.2 meter
plt.gca().add_artist(scalebar)
plt.show()
Run Code Online (Sandbox Code Playgroud)
,这应导致以下结果:
我没有尝试过(我没有安装该lib),但是从pip安装应该足够容易:
pip install matplotlib-scalebar
Run Code Online (Sandbox Code Playgroud)
万一您正在寻找一个颜色条(确实会发生错误),可以使用以下命令:
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)
,以及matshow(示例从此处改编而成):
import matplotlib.pyplot as plt
def samplemat(dims):
"""Make a matrix with all zeros and increasing elements on the diagonal"""
aa = np.zeros(dims)
for i in range(min(dims)):
aa[i, i] = i
return aa
# Display 2 matrices of different sizes
dimlist = [(12, 12), (15, 35)]
#for d in dimlist:
plt.matshow(samplemat(dimlist[0]))
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)
,结果如下:
| 归档时间: |
|
| 查看次数: |
4087 次 |
| 最近记录: |