我有一个像这样的4x4数据数组data=np.array([[0,1,1,1],[1,0,0,1],[1,1,1,0],[0,0,0,1]])现在我想将这个数组散布在二维绘图上。如果data[i,j]等于1,则在点(x,y)=(i,j)处应该有一个彩色点。我试过在matplotlib中使用散点图,但不知何故无法让它工作。 最佳答案 你可以用importnumpyasnpimportmatplotlib.pyplotaspltdata=np.array([[0,1,1,1],[1,0,0,1],[1,1,1,0],[0,0,0,1]]
我有几张图片展示了事物是如何随时间变化的。我使用以下代码将它们可视化为同一图上的许多图像:importmatplotlib.pyplotaspltimportmatplotlib.cmascmimg=[]#somearrayofimagesfig=plt.figure()foriinxrange(6):fig.add_subplot(2,3,i+1)plt.imshow(img[i],cmap=cm.Greys_r)plt.show()并得到类似的东西:没关系,但我宁愿为它们设置动画以获得somethinglikethisvideo.我怎样才能用python实现这一点,最好(不一定)用
我正在一个数组中绘制大约10,000个项目。它们具有大约1,000个唯一值。现在绘图已经运行了半个小时。我确保其余代码有效。这么慢吗?这是我第一次使用pyplot绘制直方图。 最佳答案 要使用matplotlib快速绘制直方图,您需要将histtype='step'参数传递给pyplot.hist。例如:plt.hist(np.random.exponential(size=1000000,bins=10000))plt.show()绘制大约需要15秒,平移或缩放时大约需要5-10秒进行更新。相比之下,使用histtype=
R绘图会自动设置x和y限制,以在数据和轴之间留出一些空间。我想知道matplotlib是否有办法自动执行相同的操作。如果不是,是否有关于R如何设置其轴限制的好的公式或“经验法则”? 最佳答案 在matplotlib中,您可以通过设置margins来实现此目的importmatplotlib.pyplotaspltfig,ax=plt.subplots()ax.margins(0.04)data=range(1,11)ax.plot(data,'wo')plt.savefig('margins.png')但是,好像没有,有一个rc参数
有谁知道如何将matplotlib数据单位转换为规范化单位?我需要它的原因是我需要在另一个情节之上创建一个子情节。和默认语法:plt.axes([0.1,0.1,0.3,0.3])需要归一化坐标,但我想使用数据坐标:例如这段代码:plt.plot([0,2],[2,4]);plt.axes([0.3,.3,0.4,.4])产生这个:但我希望能够使用它的数据坐标来定义子图的位置,类似于[0.7,2.5,1.7,3.5]。我试图摆弄axes.transData、axes.get_transform()等,但没有成功找到合适的函数来完成这项工作 最佳答案
我们如何使用matplotlib绘制直方图的平均线(水平)?现在,我可以毫无问题地绘制直方图。这是我正在使用的代码:##necessaryvariablesind=np.arange(N)#thexlocationsforthegroupswidth=0.2#thewidthofthebarsplt.tick_params(axis='both',which='major',labelsize=30)plt.tick_params(axis='both',which='minor',labelsize=30)ax2=ax.twinx()##thebarsrects1=ax.bar(in
我正在尝试制作4个具有倒置y轴的子图(2x2),同时在子图之间共享y轴。这是我得到的:importmatplotlib.pyplotaspltimportnumpyasnpfig,AX=plt.subplots(2,2,sharex=True,sharey=True)foraxinAX.flatten():ax.invert_yaxis()ax.plot(range(10),np.random.random(10))当sharey=True时,ax.invert_axis()似乎被忽略了。如果我设置sharey=False我会在所有子图中得到一个倒置的y轴,但显然y轴不再在子图中共享。
我在显示坐标中有matplotlib.patches.Rectangle对象(条形图的条形)的bbox,如下所示:Bbox(array([[0.,0.],[1.,1.]])但我不希望显示坐标而是数据坐标。我很确定这需要转换。这样做的方法是什么? 最佳答案 我不确定您是如何在显示坐标中获得Bbox的。用户与之交互的几乎所有内容都在数据坐标中(对我来说那些看起来像轴或数据坐标,而不是显示像素)。以下应充分解释适用于Bbox的转换:frommatplotlibimportpyplotaspltbars=plt.bar([1,2,3],[3
我尝试使用matplotlib绘制很多点。对于每个点(a,b),我想在[0,b]中为Y画线X=a。知道怎么做吗? 最佳答案 您只需使用两个端点绘制每条线。[0,b]中Y的垂直线X=a具有端点(x,y)=(a,0)和(a,b)。所以:#makeupsomesample(a,b):formatmightbedifferenttoyoursbutyougetthepoint.importmatplotlib.pyplotaspltpoints=[(1.,2.3),(2.,4.),(3.5,6.)]#(a1,b1),(a2,b2),...p
我正在使用mac,当我使用matplotlib执行以下操作时:importmatplotlib.pyplotaspltimportmatplotlib.mlabasmlabimportpylabasP...plt.plot(x,y)plt.show()因此,plt.show不会打开窗口或任何东西,而plt.savefig可以正常工作。可能是什么问题? 最佳答案 Pyplot只会弹出一个图形窗口,如果matplotlib.rcParams['interactive']==True这种情况如果你:之前在您的脚本中调用过plt.ion()