Python 将图形指定给正确的子批次

Python 将图形指定给正确的子批次,python,matplotlib,seaborn,subplot,Python,Matplotlib,Seaborn,Subplot,我有一组显示不同信息的子图。对于下面的示例,我可以将散点图指定给指定的子图,但两个散点图占用最后创建的子图 import matplotlib.pyplot as plt import seaborn as sns x = [1,4,5,6,7,8] x2 = [3,4,8,2,8,8] y = [1,2,4,8,1,9] def L_plot(ax, fontsize=12): ax.set_xlabel('x-label', fontsize=8) ax.set_ylab

我有一组显示不同信息的子图。对于下面的示例,我可以将散点图指定给指定的子图,但两个散点图占用最后创建的子图

import matplotlib.pyplot as plt
import seaborn as sns

x = [1,4,5,6,7,8]
x2 = [3,4,8,2,8,8]
y = [1,2,4,8,1,9]

def L_plot(ax, fontsize=12):
    ax.set_xlabel('x-label', fontsize=8)
    ax.set_ylabel('y-label', fontsize=8)
    ax.set_title('L', fontsize=10) 
    ax.grid(False)
    ax.scatter(x, y)

def E_plot(ax2,pid, fontsize=12):
    ax2.set_xlabel('x-label', fontsize=8)
    ax2.set_ylabel('y-label', fontsize=8)
    ax2.set_title('E', fontsize=10)
    ax2.grid(False)
    ax2 = sns.distplot(x, kde=False, norm_hist=True, color='b', bins = 10)

def D_plot(ax,pid, fontsize=12):
    ax.set_xlabel('x-label', fontsize=8)
    ax.set_ylabel('y-label', fontsize=8)
    ax.set_title('D', fontsize=10)
    ax.grid(False)
    ax = sns.distplot(x2, kde=False, norm_hist=True, color='b', bins = 10)

ax1 = plt.subplot2grid((3,1), (0, 0))  
ax2 = plt.subplot2grid((3,1), (1, 0))
ax3 = plt.subplot2grid((3,1), (2, 0))

L_plot(ax1,1)
E_plot(ax2,1)
D_plot(ax3,1)
plt.tight_布局

节目

我正在尝试将E_plot分配给第二行中的子地块,但两个distplot都位于创建的最后一个子地块中

import matplotlib.pyplot as plt
import seaborn as sns

x = [1,4,5,6,7,8]
x2 = [3,4,8,2,8,8]
y = [1,2,4,8,1,9]

def L_plot(ax, fontsize=12):
    ax.set_xlabel('x-label', fontsize=8)
    ax.set_ylabel('y-label', fontsize=8)
    ax.set_title('L', fontsize=10) 
    ax.grid(False)
    ax.scatter(x, y)

def E_plot(ax2,pid, fontsize=12):
    ax2.set_xlabel('x-label', fontsize=8)
    ax2.set_ylabel('y-label', fontsize=8)
    ax2.set_title('E', fontsize=10)
    ax2.grid(False)
    ax2 = sns.distplot(x, kde=False, norm_hist=True, color='b', bins = 10)

def D_plot(ax,pid, fontsize=12):
    ax.set_xlabel('x-label', fontsize=8)
    ax.set_ylabel('y-label', fontsize=8)
    ax.set_title('D', fontsize=10)
    ax.grid(False)
    ax = sns.distplot(x2, kde=False, norm_hist=True, color='b', bins = 10)

ax1 = plt.subplot2grid((3,1), (0, 0))  
ax2 = plt.subplot2grid((3,1), (1, 0))
ax3 = plt.subplot2grid((3,1), (2, 0))

L_plot(ax1,1)
E_plot(ax2,1)
D_plot(ax3,1)
我不确定是否无法分配seaboard包裹,或者我没有正确分配它?

的呼叫签名是:

注意最后一个选项。如果不告诉它要使用哪个轴对象,它将使用pyplot.gca gca=get current Axes返回的对象

所以你需要做,例如

sns.distplot(x2, kde=False, norm_hist=True, color='b', bins=10, ax=ax2)