python - 更改马赛克图的默认颜色
问题描述
我想更改此马赛克图的颜色以使其可在黑白中打印,但找不到更改此参数的方法
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 种不同的颜色,我需要为每个图使用不同的颜色,如下所示:
解决方案
该文档提到了一个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)
据我所知,任何接受的论点Rectangle
都可以在这本字典中传递。
推荐阅读
- machine-learning - 层的额外外部输入
- php - [ODBC Driver 17 for SQL Server]登录超时过期 - Laravel 5.7
- spring-mvc - Jersey Spring MVC 对应产品
- python-3.x - 如何在并行化随机种子实验时确保可重复性?
- python - 在 Python 中管理线程执行
- python - Pandas DataFrame 速度
- lttng - 如何找出谁在注册 lttng 跟踪点探测?
- javascript - 在 nodeJS 上加载 html 页面直到键盘中断才会加载
- azure - 使用图形 api 对 Azure AD 用户进行身份验证
- r - 在 R 中创建具有特定列名和行名的卡方矩阵