赞
踩
一个比较好看的图如下:
我们可以较为直观的看到两个离散变量之间的关系,python绘制方法也比较简单
可以使用statsmodels.graphics.mosaicplot.mosaic
文档位置:https://www.statsmodels.org/dev/generated/statsmodels.graphics.mosaicplot.mosaic.html
首先是一个比较基础的版本:
import pandas as pd import numpy as np from statsmodels.graphics.mosaicplot import mosaic def get_data() -> pd.DataFrame: """获得数据""" value1 = ['a', 'b', 'c'] value2 = [1, 2, 3, 4, 5] dataframe = pd.DataFrame(data=[ np.random.choice(value1, 100), np.random.choice(value2, 100), ]).T dataframe.columns = ['col_1', 'col_2'] return dataframe if __name__ == '__main__': df = get_data() fig, tuple_data = mosaic(df, ['col_1', 'col_2']) fig.show()
还有其他可以自定义操作的地方:
import pandas as pd import numpy as np from statsmodels.graphics.mosaicplot import mosaic def get_data() -> pd.DataFrame: """获得数据""" value1 = ['a', 'b', 'c'] value2 = [1, 2, 3, 4, 5] dataframe = pd.DataFrame(data=[ np.random.choice(value1, 100), np.random.choice(value2, 100), ]).T dataframe.columns = ['col_1', 'col_2'] return dataframe if __name__ == '__main__': df = get_data() # 自定义操作 # properties: 定义每一个块的颜色 props = {} props[('a', '1')] = {'facecolor': 'red', 'edgecolor': 'white'} # labelizer: 马赛克图的label fig, tuple_data = mosaic(df, ['col_1', 'col_2'], properties=props) fig.show()
效果图如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。