更改镶嵌图的默认颜色

时间:2019-06-13 09:59:07

标签: python pandas matplotlib mosaic-plot

我想更改此镶嵌图的颜色以使其可以黑底白字打印,但找不到改变此参数的方法

the mosaic plot

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种不同的颜色,并且每个图都需要不同的颜色,如下所示: enter image description here

1 个答案:

答案 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)

enter image description here

据我所知,any argument accepted by Rectangle可以在此字典中传递。