繁体   English   中英

如何使用 matplotlib 对 numpy 阵列进行 plot?

[英]How to plot a numpy array with matplotlib?

我生成一个圆形 numpy 数组,如下所示:

# -*- coding: utf-8 -*-

import numpy as np

a, b = 3, 3
n = 7
r = 3
arr = np.ones((n, n))
y, x = np.ogrid[-a:n-a, -b:n-b]
mask = x ** 2 + y ** 2 <= r**2
arr = 255 * mask.astype(int)

print(arr)

它打印结果如下:

[[  0   0   0 255   0   0   0]
 [  0 255 255 255 255 255   0]
 [  0 255 255 255 255 255   0]
 [255 255 255 255 255 255 255]
 [  0 255 255 255 255 255   0]
 [  0 255 255 255 255 255   0]
 [  0   0   0 255   0   0   0]]

我想要 plot 这个 numpy 阵列? 我怎样才能做到这一点?


编辑

我要显示的是一个圆圈,而不是默认图片:

plt.imgshow 显示这个

这可以使用matplotlib 的颜色 map 功能来完成。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors


a, b = 3, 3
n = 7
r = 3
arr = np.ones((n, n))
y, x = np.ogrid[-a:n-a, -b:n-b]
mask = x ** 2 + y ** 2 <= r**2
arr = 255 * mask.astype(int)


cmap = colors.ListedColormap(['purple', 'yellow'])
fig, ax = plt.subplots()
ax.imshow(arr, cmap=cmap)
plt.show()

结果是:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM