Matplotlib 如果任何子图没有数据,则Seaborn FacetGrid图为空

Matplotlib 如果任何子图没有数据,则Seaborn FacetGrid图为空,matplotlib,seaborn,Matplotlib,Seaborn,我有一个数据集,我想使用seaborn库用FacetGrids绘制。问题是我的数据“稀疏”;一些单独的子批次不存在(即,存在零数据点)。我希望这些单元格要么不显示,要么显示为空白,但仍然可以看到包含数据的子地块。下面是一个简单的例子: import pandas as pd import seaborn as sns import matplotlib.pyplot as plt df = pd.DataFrame(columns=['a','b','c','d'], data=[[1

我有一个数据集,我想使用seaborn库用FacetGrids绘制。问题是我的数据“稀疏”;一些单独的子批次不存在(即,存在零数据点)。我希望这些单元格要么不显示,要么显示为空白,但仍然可以看到包含数据的子地块。下面是一个简单的例子:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.DataFrame(columns=['a','b','c','d'],
    data=[[1,1,1,4],[1,2,2,8],[2,1,2,12],[2,1,3,14]])
print df
g = sns.FacetGrid(df, col='a', row='b', hue='c')
g.map(plt.scatter, 'c', 'd', marker='o')

不幸的是,当我绘制这个图时,我只得到四个空图,而不是三个填充图和一个空图。如果我将最后一行数据改为[2,2,3,14],则所有四个图都会按预期显示。这是seaborn的一只虫子吗?我能设法解决这个问题吗?

肯定还有别的事情发生。这对我来说就像预期的那样。您使用的matplotlib版本是什么?这听起来像是<1.4版本的bug。我会尝试升级,否则你必须手动设置轴限制。这是我ubuntu安装的matplotlib 1.3.1-1ubuntu5。但是手动设置xlim和ylim的解决方法是有效的!谢谢这对我来说也像预期的那样(3个填充,1个空白地块)。投票结束,因为不再可复制。