Python 更改马赛克打印的默认颜色

Python 更改马赛克打印的默认颜色,python,pandas,matplotlib,mosaic-plot,Python,Pandas,Matplotlib,Mosaic Plot,我想更改此马赛克绘图的颜色,使其可以黑白打印,但找不到更改此参数的方法 以下是我实际拥有的:我看到我可以在这个链接上使用马赛克(属性)更改颜色: 但我只能给出两种不同的颜色,每个图需要不同的颜色,如下所示: 提到一个属性=参数: 属性函数(键)->dict,可选 一种函数,用于马赛克中的每个图块,获取该图块的键并返回生成图块的属性字典 矩形,如颜色、图案填充或类似。将创建默认属性集 为尚未定义颜色的钥匙提供,并将 使用颜色变化帮助从视觉上区分各种类别。 它应该返回None以指示它应该使用默认值

我想更改此马赛克绘图的颜色,使其可以黑白打印,但找不到更改此参数的方法

以下是我实际拥有的:我看到我可以在这个链接上使用马赛克(属性)更改颜色: 但我只能给出两种不同的颜色,每个图需要不同的颜色,如下所示:

提到一个
属性=
参数:

属性函数(键)->dict,可选

一种函数,用于马赛克中的每个图块,获取该图块的键并返回生成图块的属性字典 矩形,如颜色、图案填充或类似。将创建默认属性集 为尚未定义颜色的钥匙提供,并将 使用颜色变化帮助从视觉上区分各种类别。 它应该返回None以指示它应该使用默认值 属性的属性。可以创建每个键的属性字典 ,它将在内部转换为正确的函数

因此,您可以将函数(参见上面链接中的示例)或更简单的字典传递到
properties=
,以更改矩形的外观:

x = ['yes', 'yes', 'yes', 'yes', 'yes', 'yes', 'yes']
y = ['yes', 'yes', 'yes', 'yes', 'no', 'no', 'no']
data = pandas.DataFrame({'x': x, 'y': y})

props = {}
props[('yes', 'yes')] = {'color': 'xkcd:orange'}
props[('yes','no')] = {'facecolor': 'xkcd:pale blue',
                       'edgecolor':'xkcd:light grey',
                       'hatch':'o'}
data = pandas.DataFrame({'x': x, 'y': y})
mosaic(data, ['x', 'y'], properties=props)


据我所知,可以在本词典中传递。

能否显示您希望图形循环的样子?函数返回矩形。你需要自己给它们上色。
x = ['yes', 'yes', 'yes', 'yes', 'yes', 'yes', 'yes']
y = ['yes', 'yes', 'yes', 'yes', 'no', 'no', 'no']
data = pandas.DataFrame({'x': x, 'y': y})

props = {}
props[('yes', 'yes')] = {'color': 'xkcd:orange'}
props[('yes','no')] = {'facecolor': 'xkcd:pale blue',
                       'edgecolor':'xkcd:light grey',
                       'hatch':'o'}
data = pandas.DataFrame({'x': x, 'y': y})
mosaic(data, ['x', 'y'], properties=props)