我想更改此镶嵌图的颜色以使其可以黑底白字打印,但找不到改变此参数的方法
from statsmodels.graphics.mosaicplot import mosaic
import matplotlib.pyplot as plt
import pandas
x = ['yes', 'yes', 'yes', 'yes', 'yes', 'yes', 'yes']
y = ['yes', 'yes', 'yes', 'yes', 'no', 'no', 'no']
data = pandas.DataFrame({'x': x, 'y': y})
mosaic(data, ['x', 'y'])
plt.savefig("mosaicplot.pdf", figsize=[10,5])
plt.show()
这是我真正拥有的:我看到可以通过此链接上的镶嵌(属性)来更改颜色:http://www.statsmodels.org/stable/generated/statsmodels.graphics.mosaicplot.mosaic.html 但是我只能给出2种不同的颜色,并且每个图都需要不同的颜色,如下所示:
答案 0 :(得分:1)
The documentation提到一个properties=
参数:
属性功能(键)-> 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)
据我所知,any argument accepted by Rectangle
可以在此字典中传递。