草庐IT

python - 如何使用表示 matplotlib 中的原始数据的颜色条绘制对数归一化 imshow 图

我正在使用matplotlib绘制对数归一化图像,但我希望原始原始图像数据在颜色栏中而不是[0-1]间隔中表示。我觉得有一种更matplotlib'y的方式来做到这一点,通过使用某种标准化对象而不是事先转换数据......在任何情况下,原始图像中可能存在负值。importmatplotlib.pyplotaspltimportnumpyasnpdeflog_transform(im):'''returnslog(image)scaledtotheinterval[0,1]'''try:(min,max)=(im[im>0].min(),im.max())if(max>min)and(m

python - 不规则 X Y Z 数据的等高线/imshow 图

我有X、Y、Z格式的数据,其中所有数据都是一维数组,Z是坐标(X,Y)处的测量幅度。我想将此数据显示为等高线或“imshow”图,其中等高线/颜色代表Z值(幅度)。用于测量和X和Y外观的网格是不规则间隔的。非常感谢,len(X)=100len(Y)=100len(Z)=100 最佳答案 plt.tricontourf(x,y,z)是否满足您的要求?它将为不规则间隔的数据(非直线网格)绘制填充轮廓。您可能还想查看plt.tripcolor()。importnumpyasnpimportmatplotlib.pyplotaspltx=n

python - 类型错误 : Invalid dimensions for image data when plotting array with imshow()

如下代码#NumericaloperationSN_map_final=(new_SN_map-mean_SN)/sigma_SN#Plotfigurefig12=plt.figure(12)fig_SN_final=plt.imshow(SN_map_final,interpolation='nearest')plt.colorbar()fig12=plt.savefig(outname12)new_SN_map是一维数组,mean_SN和sigma_SN是常量,我收到以下错误。Traceback(mostrecentcalllast):File"c:\Users\Valentin\

python - 在 matplotlib imshow 中调整网格线和刻度线

我正在尝试绘制一个值矩阵,并希望添加网格线以使值之间的边界更清晰。不幸的是,imshow决定将刻度线定位在每个体素的中间。有没有可能a)移除勾号,但将标签保留在同一位置,并且b)在像素边界之间添加网格线?importmatplotlib.pyplotaspltimportnumpyasnpim=plt.imshow(np.reshape(np.random.rand(100),newshape=(10,10)),interpolation='none',vmin=0,vmax=1,aspect='equal');ax=plt.gca();ax.set_xticks(np.arange(

python - 多个 imshow-subplots,每个都有颜色条

我想要一个由四个子图组成的图形。其中两个是通常的线图,其中两个是imshow-images。我可以将imshow-images格式化为正确的绘图本身,因为它们中的每一个都需要自己的颜色条、修改后的轴和删除另一个轴。然而,这似乎对子图毫无用处。谁能帮我解决这个问题?我用它来显示上面“常规”图的数据作为颜色图(通过将输入数组i缩放到[i,i,i,i,i,i]用于2D并用它调用imshow()。下面的代码首先显示了我需要的子图,第二个显示了我能做的一切,这还不够。#!/usr/bin/envpythonimportmatplotlib.pyplotaspltfrommatplotlib.co

python - 如何在 matplotlib.pyplot.imshow 中使用 'extent'

我设法绘制了我的数据,并想为其添加背景图像(map)。数据由long/lat值绘制,我也有图像三个角(左上角、右上角和左下角)的long/lat值。我想弄清楚如何在imshow中使用“范围”选项。但是,我发现的示例并没有解释如何为每个角分配x和y(在我的例子中,我有三个角的信息)。如何在将图像添加到绘图时为其分配三个角的位置?谢谢 最佳答案 在当前轴的坐标中指定要粘贴图像的矩形的角Extent定义了左右界限,以及上下界限。它需要四个值,如下所示:extent=[horizo​​ntal_min,horizo​​ntal_max,ve

python - 何时在 pcolormesh 上使用 imshow?

我经常发现自己需要使用matplotlib在Python中创建热图风格的可视化。Matplotlib提供了几个显然做同样事情的函数。建议使用pcolormesh而不是pcolor但imshow和之间有什么区别(从作为数据绘图仪的实际角度来看)pcolormesh?使用其中一种的优点/缺点是什么?在什么情况下,其中一个会是明显的赢家? 最佳答案 从根本上说,imshow假定数组中的所有数据元素都以相同的大小呈现,而pcolormesh/pcolor关联元素具有矩形元素的数据数组的大小可能在矩形网格上有所不同。如果您的网格元素是统一的,

python - 如何以交互方式更新 matplotlib imshow() 窗口?

我正在研究一些计算机视觉算法,我想展示一个numpy数组在每一步中的变化。现在可行的是,如果我的代码末尾有一个简单的imshow(array),窗口就会显示并显示最终图像。但是,我想做的是在每次迭代中图像更改时更新和显示imshow窗口。例如,我想这样做:importnumpyasnpimportmatplotlib.pyplotaspltimporttimearray=np.zeros((100,100),np.uint8)foriinxrange(0,100):forjinxrange(0,50):array[j,i]=1#_show_updated_window_briefly_

python - OpenCV 在 Linux 上的 python 与 anaconda 无法正常工作。收到未实现 cv2.imshow() 的错误

这是我得到的确切错误。我的操作系统是Ubuntu16.10。OpenCV错误:未指定错误(该功能未实现。使用Windows、GTK+2.x或Carbon支持重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg-config,然后重新运行cmake或配置脚本)在cvShowImage,文件/feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp,第545行回溯(最近一次通话最后):文件“untitled.py”,第7行,在cv2.imshow('图片'

python - 防止 matplotlib 中 imshow 的抗锯齿

当我使用matplotlib的imshow()方法来表示一个小的numpy矩阵时,它最终会在像素之间进行一些平滑处理。有什么办法可以禁用这个吗?它使我的数字在演示中具有误导性。上图是一个28x28的图像,所以我应该看到代表每个像素的单色大方block(因为matlab在使用imagesc()时会显示它)。但相反,像素似乎与相邻像素模糊。有没有办法禁用这种行为? 最佳答案 imshow有一个插值选项,用于控制如何以及是否将插值应用于矩阵的渲染。如果你尝试imshow(array,interpolation="nearest")你可能会