使用gridspec的子图大小

时间:2018-04-18 13:32:48

标签: python-3.x matplotlib

Python 3.6。我不明白为什么我的阴谋在网格的每个部分都被如此粉碎。宽度没问题,它们被我想要的两个卡住,每个块之间的空间也可以。但我没有找到改变y轴大小的方法。

enter image description here

这是我的代码:

def graphiqueLigneDate(listeDates, listeOrdonnees, nomOrdonnees, axe, labelLigne):
    # -- Variables utiles
    listeTicks = []
    step = 5
    for i in range(int(len(listeDates)/step)+1):
        listeTicks.append(listeDates[step*i][:-5])

    # -- Configurer graphique --- 
    axe.plot([i for i in range(1,len(listeDates)+1)], listeOrdonnees, label = labelLigne)
    axe.set_ylabel(nomOrdonnees)
    axe.set_xlabel('Date')
    axe.set_xticks([i for i in range(1,len(listeDates)+1,5)])
    axe.set_xticklabels(listeTicks)
    axe.legend()

fig = plt.figure(figsize=(6,5))
fig.suptitle('Volume vs Prix', size=18)
plt.subplots_adjust(top=0.9, wspace=0.1, hspace=0.5)

nbreDeMots = len(listeMots)
heightRatiosListe = [1] * nbreDeMots
grille = gridspec.GridSpec(nbreDeMots, 2, height_ratios = heightRatiosListe) 

i = 0
for mot in listeMots:
    gs = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec = grille[i], hspace = 0)
    j = 0
    for cellule in gs:
        ax1 = fig.add_subplot(cellule)
        if j % 2 == 0:
            ax1.tick_params(axis='x',which='both', direction='in' , bottom='on',top='off', labelbottom='off')
            ax1.set_ylabel('Volume')
            ft.graphiqueLigneDate(listeBonnesDates, dicoVolume[mot], 'Volume Tweet', ax1, mot)
        else:
            ax1.set_xlabel('Date')
            ax1.set_ylabel('Prix')
            ft.graphiqueLigneDate(listeBonnesDates, dicoSpot[mot], 'Volume Tweet', ax1, mot)
        j += 1
    i +=1

fig.tight_layout()
fig.show()

谢谢!

0 个答案:

没有答案