我第一次玩seaborn,尝试使用matplotlib子图在不同的图上绘制不同的pandas数据列。下面的简单代码产生了预期的数字,但最后一个图没有正确的y范围(它似乎与数据帧中的整个值范围相关联)。 有谁知道为什么会发生这种情况以及如何预防?感谢。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pds
import seaborn as sns
X = np.arange(0,10)
df = pds.DataFrame({'X': X, 'Y1': 4*X, 'Y2': X/2., 'Y3': X+3, 'Y4': X-7})
fig, axes = plt.subplots(ncols=2, nrows=2)
ax1, ax2, ax3, ax4 = axes.ravel()
sns.set(style="ticks")
sns.despine(fig=fig)
sns.regplot(x='X', y='Y1', data=df, fit_reg=False, ax=ax1)
sns.regplot(x='X', y='Y2', data=df, fit_reg=False, ax=ax2)
sns.regplot(x='X', y='Y3', data=df, fit_reg=False, ax=ax3)
sns.regplot(x='X', y='Y4', data=df, fit_reg=False, ax=ax4)
plt.show()
更新:我用以下代码修改了上述代码:
fig, axes = plt.subplots(ncols=2, nrows=3)
ax1, ax2, ax3, ax4, ax5, ax6 = axes.ravel()
如果我在任何轴上绘制数据,但最后一个我获得了我正在寻找的东西: 当然我不想要空框架。所有图表都呈现出具有类似视觉方面的数据。 当数据绘制在最后一个轴上时,它会得到一个像第一个例子中那样太宽的y范围。只有最后一个轴似乎有这个问题。任何线索?