简体   繁体   English

设置 matplotlib 子图的大小

[英]Set size of matplotlib subplots

I created two subplots on a MPL figure, but i'm having an hard time setting the size on them.我在 MPL 图上创建了两个子图,但我很难设置它们的大小。 I want the space to be splitted between the two charts, so each chart needs to have 50% of the total width of the figure, and i want them to have the same height of the figure, here is how i initialized the subplots:我希望在两个图表之间分割空间,因此每个图表需要占图形总宽度的 50%,并且我希望它们具有相同的图形高度,这是我初始化子图的方式:

fig = plt.figure(facecolor='#131722',dpi=155, figsize=(10, 3))
ax1 = plt.subplot2grid((3,3), (2,0), facecolor='#131722')
ax2 = plt.subplot2grid((5,3), (2,2), colspan=5, rowspan=4, facecolor='#131722')

Colors = [['#0400ff', '#FF0000'], ['#09ff00', '#ff8c00']]

    for x in List:

        Index = List.index(x)

        rate_buy = []
        total_buy = []
        rate_sell = []
        total_sell = []

        for y in x['data']['asks']:
            rate_sell.append(y[0])
            total_sell.append(y[1])

        for y in x['data']['bids']:
            rate_buy.append(y[0])
            total_buy.append(y[1])

        rBuys = pd.DataFrame({'buy': rate_buy})
        rSells = pd.DataFrame({'sell': rate_sell})
        tBuys = pd.DataFrame({'total': total_buy})
        tSells = pd.DataFrame({'total': total_sell})

        ax1.plot(rBuys.buy, tBuys.total, color=Colors[Index][0], linewidth=0.5, alpha=1, label='test')
        ax2.plot(rSells.sell, tSells.total, color=Colors[Index][1],alpha=0.5, linewidth=1, label=x['exchange'])

        ax1.fill_between(rBuys.buy, 0, tBuys.total, facecolor=Colors[Index][0], alpha=0.4)
        ax2.fill_between(rSells.sell, 0, tSells.total, facecolor=Colors[Index][1], alpha=0.4)

And this is what i'm getting:这就是我得到的: 在此处输入图像描述

use plt.tight_layout() before calling plt.show().在调用 plt.show( plt.tight_layout() ()。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM