这里是Python初学者。我用的是numpy和matplotlib。在
我有一个正弦函数,可以生成100个项目宽的一维列表。我想把它变成一个2D列表/数组/矩阵,它宽100项,长50项,矩阵的每一新行与最后一行完全相同(这里的数字是任意的)。在
然后我想把它画成灰度x-y热图,颜色与每个索引的数量成比例。比如:
我生成的一维数组如下所示:
for i in range(0,100):
x_array[i] = (np.cos(a[i]))**2 * (np.sinc(b[i]))**2
其中a和b是先前定义的长度相同的列表。然后我把它和n作图,得到一条很好的1D线。在
物理学家将认识到这是两个狭缝的干涉图样。我想添加另一个任意长度的维度,以便能够在x/y/强度空间中绘制条纹。在
有没有一个简单的循环,我可以实现“复制”这个列表x次,然后有一个方法让我绘制这些?提前谢谢。在
如果您想要一个与您描述的图像相对应的数组,您可以简单地使用NumPy的切片表示法将所有“行”填充为相同的值:
要复制数组,可以使用列表理解:
如果没有像matplotlib这样的好软件包,绘图就更难了。 那就是
import matplotlib.pyplot as plt plt.imshow(x_matrix)
我假设您使用
numpy
,因为您提到了绘图,matplotlib
似乎是事实上的标准。如果是这样的话,你可以用你的数组乘以np.ones(required_shape)
,广播就可以做你想做的事情。。。e、 g.:在这里,我从原来的长度为10的数组中构造了一个5x10数组。在
如果
^{pr2}$x_array
不是一个numpy数组来启动,那么创建它应该很容易:相关问题 更多 >
编程相关推荐