How can I add a python's ggplot object to a matplot grid?

后端 未结 1 647
清歌不尽
清歌不尽 2021-01-22 11:52

My pandas DataFrame results_print has 2-dim arrays that are images. I print them like so:

n_rows = results_print.shape[0]
n_cols = results_print.sha         


        
相关标签:
1条回答
  • 2021-01-22 12:30

    I think the solution would be to first draw the ggplot part. Then obtain the matplotlib figure object via plt.gcf() and the axes via plt.gca(). Resize the ggplot axes to fit into a grid and finally draw the rest of the matplotlib plots to that figure.

    import ggplot as gp
    import matplotlib.pyplot as plt
    import numpy as np
    # make ggplot
    g = gp.ggplot(gp.aes(x='carat', y='price'), data=gp.diamonds)
    g = g + gp.geom_point()
    g = g + gp.ylab(' ')+ gp.xlab(' ')
    g.make()
    # obtain figure from ggplot
    fig = plt.gcf()
    ax = plt.gca()
    # adjust some of the ggplot axes' parameters
    ax.set_title("ggplot plot")
    ax.set_xlabel("Some x label")
    ax.set_position([0.1, 0.55, 0.4, 0.4])
    
    #plot the rest of the maplotlib plots
    for i in [2,3,4]:
        ax2 = fig.add_subplot(2,2,i)
        ax2.imshow(np.random.rand(23,23))
        ax2.set_title("matplotlib plot")
    plt.show()
    
    0 讨论(0)
提交回复
热议问题