Python seaborn中的叠加图会导致x轴对齐错误

Python seaborn中的叠加图会导致x轴对齐错误,python,seaborn,jupyter,Python,Seaborn,Jupyter,我在尝试将情节与seaborn叠加时遇到了一个问题。我能够分别生成两个图,如下所示 fig, (ax1,ax2) = plt.subplots(ncols=2,figsize=(30, 7)) sns.lineplot(data=data1, y='MSE',x='pct_gc',ax=ax1) sns.boxplot(x="pct_gc", y="MSE", data=data2,ax=ax2,width=0.4) 输出如下所示: 但是当我试图把

我在尝试将情节与seaborn叠加时遇到了一个问题。我能够分别生成两个图,如下所示

fig, (ax1,ax2) = plt.subplots(ncols=2,figsize=(30, 7))

sns.lineplot(data=data1, y='MSE',x='pct_gc',ax=ax1)

sns.boxplot(x="pct_gc", y="MSE", data=data2,ax=ax2,width=0.4)
输出如下所示:

但是当我试图把两个情节叠加起来,但是把它们都分配到同一个ax对象上

fig, (ax1,ax2) = plt.subplots(ncols=2,figsize=(30, 7))

sns.lineplot(data=data1, y='MSE',x='pct_gc',ax=ax1)

sns.boxplot(x="pct_gc", y="MSE", data=data2,ax=ax2,width=0.4)

叠加两个图时,我无法识别线图变化中的X轴(两个图X轴从0到0.069)


我的目标是在保持相同X轴范围的同时,将两个图叠加。

Seaborn的
箱线图
创建分类X轴,所有箱线的距离都相同。在内部,x轴编号为
0,1,2,…
,但在外部,其标签从0到0.069

要将线图与箱线图结合起来,可以直接寻址matplotlib的箱线图,以便明确设置位置和宽度。当
patch\u artist=True
时,将创建一个矩形(而不仅仅是线条),可以为其指定
facecolor
manage_ticks=False
防止
boxplot
更改x标记及其限制。可选的
notch=True
会使中位数更加突出,但根据数据的不同,置信区间可能太大,看起来很奇怪

导入matplotlib.pyplot作为plt
将numpy作为np导入
作为pd进口熊猫
导入seaborn作为sns
data1=pd.DataFrame({'pct_gc':np.linspace(0,0.069200),'MSE':np.random.normal(0.02,0.1200.cumsum()})
数据1['pct_range']=pd.cut(数据1['pct_gc'],10)
图,ax1=plt.子批次(ncols=1,figsize=(20,7))
sns.lineplot(数据=data1,y='MSE',x='pct\u gc',ax=ax1)
对于间隔,在zip中显示颜色(np.unique(data1['pct_range')),plt.cm.tab10.colors):
ax1.boxplot(数据1[data1['pct_range']==间隔]['MSE'],
位置=[interval.mid],宽度=0.4*interval.length,
patch_artist=True,boxprops={'facecolor':color},
notch=False,medianprops={'color':'yellow','linewidth':2},
管理(不正确)
plt.show()

Seaborn的
箱线图
创建了分类的x轴,所有框都具有相同的距离。在内部,x轴编号为
0,1,2,…
,但在外部,其标签从0到0.069

要将线图与箱线图结合起来,可以直接寻址matplotlib的箱线图,以便明确设置位置和宽度。当
patch\u artist=True
时,将创建一个矩形(而不仅仅是线条),可以为其指定
facecolor
manage_ticks=False
防止
boxplot
更改x标记及其限制。可选的
notch=True
会使中位数更加突出,但根据数据的不同,置信区间可能太大,看起来很奇怪

导入matplotlib.pyplot作为plt
将numpy作为np导入
作为pd进口熊猫
导入seaborn作为sns
data1=pd.DataFrame({'pct_gc':np.linspace(0,0.069200),'MSE':np.random.normal(0.02,0.1200.cumsum()})
数据1['pct_range']=pd.cut(数据1['pct_gc'],10)
图,ax1=plt.子批次(ncols=1,figsize=(20,7))
sns.lineplot(数据=data1,y='MSE',x='pct\u gc',ax=ax1)
对于间隔,在zip中显示颜色(np.unique(data1['pct_range')),plt.cm.tab10.colors):
ax1.boxplot(数据1[data1['pct_range']==间隔]['MSE'],
位置=[interval.mid],宽度=0.4*interval.length,
patch_artist=True,boxprops={'facecolor':color},
notch=False,medianprops={'color':'yellow','linewidth':2},
管理(不正确)
plt.show()