0

我想用statsmodels.graphics.mosaicplot.mosaic()投射空单元格的数据创建一个马赛克图。它们在生成的图中看起来很丑,因为无论其大小如何,都会创建一个单元格。

例子:

import matplotlib.pyplot as plt

import pandas as pd
from statsmodels.graphics.mosaicplot import mosaic

df = pd.DataFrame({'size' : ['small', 'large', 'large'],
                   'length' : ['long', 'short', 'long']})

print(df)  # note that the 'short'-'small' combination is missing

fig = plt.figure()
ax = fig.add_subplot(111)
mosaic(df, ax=ax)

为值“short small”创建一个带有空单元格的图:

在此处输入图像描述

有没有办法避免创建此单元格或之后将其从图中删除?

4

1 回答 1

2

发送匿名函数以排除值为 0 的标签:

labels = lambda k: "\n".join(k) if df[k] != 0 else ""
mosaic(df, ax=ax, labelizer=labels)
于 2017-02-17T16:37:20.913 回答