Matplotlib 绘制错误的绘图

问题描述 投票:0回答:1

我用 0 或 1 填充 numpy 数组,具体取决于计算的数组索引值是大于还是小于给定值。 这会产生一个由 0 和 1 组成的数组。 Matplotlib 不这么认为

计算比较 d=sin(bpi/180)x+sin(api/180)cos(bpi180)*y

unique语句打印“空间[0.1.]中的唯一值”

最后一张图片显示了相同的代码,带有 True/False 数组而不是 0/1

import pandas as pd 
import matplotlib.pyplot as plt
import numpy as np
tan=np.tan
sin=np.sin
cos=np.cos
pi=np.pi
x=4
y=3
Max=.3

sizeOfSpace=2000
alpha=np.linspace(-10, 10,sizeOfSpace)
beta=np.linspace(-10, 10,sizeOfSpace)

space=np.zeros((sizeOfSpace,sizeOfSpace))
for i,a in enumerate(alpha):
    for j,b in enumerate(beta):
        d=sin(b*pi/180)*x+sin(a*pi/180)*cos(b*pi*180)*y
        space[i,j]=int(0) if d<Max else int(1)
plt.imshow(space,cmap=plt.cm.gray)
plt.colorbar()
print(f'unique valeus in space {np.unique(space)}')

enter image description here

enter image description here

enter image description here

关于如何制作二值图像有什么建议吗?

python matplotlib trigonometry floating-accuracy
1个回答
0
投票

将 numpy 导入为 np 将 matplotlib.pyplot 导入为 plt

数组 = np.random.rand(100, 100) > 0.5

plt.imshow(数组, cmap='灰色') plt.show()

  1. 列出项目
© www.soinside.com 2019 - 2024. All rights reserved.