使用Seaborn的因素图法的问题

时间:2019-05-10 12:22:44

标签: python ubuntu jupyter-notebook seaborn

我正在尝试运行Python笔记本(link)。在In [18]:行中,作者使用Seaborn绘制了一些数据,我得到了一个错误

  

ValueError:“ c”参数包含12个元素,不适用于大小为0的“ x”和大小为0的“ y”。

在[18]中:

import seaborn as sns

# sales trends
sns.factorplot(data = train_store, x = 'Month', y = "Sales", 
               col = 'StoreType', # per store type in cols
               palette = 'plasma',
               hue = 'StoreType',
               row = 'Promo', # per promo in the store in rows
               color = c)

Seaborn版本:

seaborn==0.9.0

我在网上查看了有关此错误的信息,但找不到任何有用的信息。请指引我正确的方向。

更新

这是最少的测试代码

import pickle
import seaborn as sns
# seaborn==0.9.0

with open('train_store', 'rb') as f:
    train_store = pickle.load(f)

c = '#386B7F' # basic color for plots

# sales trends
sns.factorplot(data = train_store, x = 'Month', y = "Sales", 
               col = 'StoreType', # per store type in cols
               palette = 'plasma',
               hue = 'StoreType',
               row = 'Promo', # per promo in the store in rows
               color = c)

链接到train_store数据文件:Link 1 Link 2

3 个答案:

答案 0 :(得分:1)

这是0.9.0版带来的更改。

在此版本中,不建议使用factorplot(隐式),并且已实现新的catplot(类别图)。您仍然可以在代码中使用factorplot,但是在内部它将使用相关参数调用catplot。

在catplot实现中,当使用类型“点”(带有代表组平均值的点的线)时,不能将“色相”和“ col”或“色相”和“行”作为相同的数据字段。 / p>

因此,您可以将代码更改为以下任一选项:

选项1:

get()

选项2:

/*
 * (non-Javadoc)
 * @see java.util.function.Supplier#get()
 */
default Stream<T> get() {
    return stream();
}

答案 1 :(得分:0)

为了解决此问题,我必须进行以下更改

sns.factorplot(data = train_store, x = 'Month', y = "Sales", 
               row = 'Promo',     # per promo in the store in rows
               col = 'StoreType' # per store type in cols
               )

答案 2 :(得分:0)

我做了一个简单的更改,并得到了想要的情节

sns.factorplot(data = train_store, x = 'DayOfWeek', y = "Sales", 
               col = 'Promo', 
               row = 'Promo2')

我只是放弃了色相和调色板参数。