How to plot pcolor colorbar in a different subplot - matplotlib

前端 未结 2 1558
别跟我提以往
别跟我提以往 2021-02-08 05:32

I am trying to split my plots in different subplots.. What I want to achieve is to put a colorbar for a subplot in a different subplot. Right now I am using:

# fi         


        
相关标签:
2条回答
  • 2021-02-08 06:24

    I believe you should use ax instead of cax.

    # colorbar
    axes = plt.subplot2grid((4, 2), (0, 1), rowspan=3)
    plt.colorbar(pc, ax=axes)
    
    0 讨论(0)
  • 2021-02-08 06:25

    colorbar() accepts a cax keyword argument that allows you to specify the axes object that the colorbar will be drawn on.

    In your case, you would change your colorbar call to the following:

    # colorbar
    axes = plt.subplot2grid((4, 2), (0, 1), rowspan=3)
    plt.colorbar(pc, cax=axes)
    

    This will take up the whole space given by subplot2grid; you can adjust this to be more reasonable either by having the main axes take up many more columns than the colorbar axes, or by setting up the gridspec explicitly. For example, your figure may be easier to tweak with the following:

    from matplotlib import gridspec
    gs = gridspec.GridSpec(2, 2, height_ratios=(3, 1), width_ratios=(9, 1))
    
    # first graph
    axes = plt.subplot(gs[0,0])
    pc = plt.pcolor(df1, cmap='jet')
    
    # second graph
    axes = plt.subplot(gs[1,0])
    plt.pcolor(df2, cmap='Greys')
    
    # colorbar
    axes = plt.subplot(gs[0,1])
    plt.colorbar(pc, cax=axes)
    

    Then you can just change height_ratios and width_ratios to your liking.

    0 讨论(0)
提交回复
热议问题