python – 更改绘图的原点
发布时间:2020-12-20 11:31:07 所属栏目:Python 来源:网络整理
导读:我有一个包含3列的数据表,我想在彩色2D绘图中根据前两个绘制第三列.例如,对于下表,即 4.0 4.0 0.313660827978 4.0 5.0 0.365348418405 4.0 6.0 0.423733120134 5.0 4.0 0.365348418405 5.0 5.0 0.439599930621 5.0 6.0 0.525083754405 6.0 4.0 0.42373312013
我有一个包含3列的数据表,我想在彩色2D绘图中根据前两个绘制第三列.例如,对于下表,即
4.0 4.0 0.313660827978 4.0 5.0 0.365348418405 4.0 6.0 0.423733120134 5.0 4.0 0.365348418405 5.0 5.0 0.439599930621 5.0 6.0 0.525083754405 6.0 4.0 0.423733120134 6.0 5.0 0.525083754405 6.0 6.0 0.651536351379 我使用以下代码: x,y,z = np.loadtxt('output_overlap.dat').T #Transposed for easier unpacking nrows,ncols = final_step_j-1,final_step_k-1 grid = z.reshape((nrows,ncols)) plt.imshow(grid,extent=(x.min(),x.max(),y.max(),y.min()),interpolation='nearest',cmap='binary') fig1 = plt.gcf() plt.colorbar() plt.xlabel('m1') plt.ylabel('m2') plt.draw() fig1.savefig('test.pdf',dpi=100) close('all') 这给了我以下情节: 哪个是对的.现在,我的问题是:如何更改在Y轴上显示数据的顺序?我想在原点得到点(4,4). 我试过改变 plt.imshow(grid,y.min()) 至: plt.imshow(grid,y.min(),y.max()) 它确实会更改网格中的数字,但不会更改实际数据.这不是解决方案.有人可以帮我吗? 解决方法
范围只是将这些角坐标分配给数据,它无论如何都不会改变基础数据的顺序.
imshow有一个origin关键字,请参阅: a = np.array([0.313660827978,0.365348418405,0.423733120134,0.439599930621,0.525083754405,0.651536351379]).reshape(3,3) extent = [4,6,4,6] fig,axs = plt.subplots(1,2) axs[0].imshow(a,extent=extent,interpolation='none') axs[1].imshow(a,origin='lower',interpolation='none') 您还可以考虑使用np.flipud和np.fliplr来镜像数组的轴.但我个人更喜欢用imshow设置原点,如果这足够的话. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |