相关疑难解决方法(0)

Matplotlib 2子图,1个Colorbar

我花了很长时间研究如何让两个子图共享相同的y轴,并在Matplotlib中共享两个单色条.

正在发生的事情是,当我打电话给colorbar()在任一功能subplot1或者subplot2,它会自动缩放的情节使得彩条加的情节会适合进入"插曲"包围盒内部,造成两个并排侧地块是两个非常不同的大小.

为了解决这个问题,我尝试创建了第三个子图,然后我将其修改为不存在只有一个颜色条存在的图.唯一的问题是,现在这两个地块的高度和宽度是不均匀的,我无法弄清楚如何使它看起来没问题.

这是我的代码:

from __future__ import division
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import patches
from matplotlib.ticker import NullFormatter

# SIS Functions
TE = 1 # Einstein radius
g1 = lambda x,y: (TE/2) * (y**2-x**2)/((x**2+y**2)**(3/2)) 
g2 = lambda x,y: -1*TE*x*y / ((x**2+y**2)**(3/2))
kappa = lambda x,y: TE / (2*np.sqrt(x**2+y**2))

coords = np.linspace(-2,2,400)
X,Y = np.meshgrid(coords,coords)
g1out = g1(X,Y)
g2out = g2(X,Y)
kappaout = kappa(X,Y)
for i in range(len(coords)):
    for …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar subplot

207
推荐指数
12
解决办法
17万
查看次数

Matplotlib不同大小的子图

我需要在图中添加两个子图.一个子图需要大约是第二个(相同高度)的三倍.我使用GridSpeccolspan论证完成了这个,但我想这样做,figure所以我可以保存为PDF.我可以使用figsize构造函数中的参数调整第一个数字,但是如何更改第二个图的大小?

python plot matplotlib figure

206
推荐指数
6
解决办法
24万
查看次数

如何删除子图之间的"空"空间?

我正在制作一个总共68个子图的数字,并希望删除它们之间的空白区域.这就是我所拥有的:

情节太多了.

我该怎么做呢?

编辑:使用plt.tight_layout()会使情况变得更糟:

子图之间的空间更大

这是我的代码:

for j in range(0,len(sort_yf)):
for i in range(0,len(yf)):
    if yf[i]==sort_yf[j]:
        sort_ID=np.append(sort_ID,'output/'+ID[i]+'.png')
for i in range (1,69):
    plt.subplot(17,4,i,aspect='equal')
    plots=img.imread(sort_ID[i])
    plt.imshow(plots)
    plt.axis('off')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib subplot imshow

3
推荐指数
1
解决办法
6310
查看次数

消除 matplotlib 图中子图之间的空白

我正在尝试创建一个很好的图,它连接了一个 4x4 的子图网格(与 gridspec 一起放置,每个子图为 8x8 像素)。我一直在努力使情节之间的间距与我试图告诉它做的事情相匹配。我想问题是由于在图的右侧绘制了一个颜色条,并调整了图中图的位置以适应。然而,即使没有包含颜色条,这个问题似乎也会出现,这让我更加困惑。它也可能与边距有关。下面显示的图像是由相关代码生成的。正如你所看到的,我试图让图之间的空间变为零,但它似乎不起作用。任何人都可以建议吗?

fig = plt.figure('W Heat Map', (18., 15.))
gs = gridspec.GridSpec(4,4)
gs.update(wspace=0., hspace=0.)
for index in indices:
    loc = (i,j) #determined by the code
    ax = plt.subplot(gs[loc])
    c = ax.pcolor(physHeatArr[index,:,:], vmin=0, vmax=1500)
    # take off axes 
    ax.axis('off')
    ax.set_aspect('equal')
fig.subplots_adjust(right=0.8,top=0.9,bottom=0.1)
cbar_ax = heatFig.add_axes([0.85, 0.15, 0.05, 0.7])
cbar = heatFig.colorbar(c, cax=cbar_ax)
cbar_ax.tick_params(labelsize=16)
fig.savefig("heatMap.jpg")
Run Code Online (Sandbox Code Playgroud)

矩形图

同样,在制作没有颜色条的方形图形时:

fig = plt.figure('W Heat Map', (15., 15.))
gs = gridspec.GridSpec(4,4)
gs.update(wspace=0., hspace=0.)
for index in indices:
    loc = (i,j) #determined by the …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib

3
推荐指数
1
解决办法
4640
查看次数

标签 统计

matplotlib ×4

python ×4

plot ×3

subplot ×2

colorbar ×1

figure ×1

imshow ×1