matplotlib、seaborn 绘制多图

matplotlib、seaborn 绘制多图-函数编写思路

          • 对于这种不常用,但有时候做分析又会用的到,因为绘图用的少,总是会在生产中被卡壳。谨以此记录python 的漫漫路

对于这种不常用,但有时候做分析又会用的到,因为绘图用的少,总是会在生产中被卡壳。谨以此记录python 的漫漫路

源代码是在jupyter-lab上面写的,为了方便阅读,就全部放在了一起。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns### 查看分类数据的不同属性值的表现差异
rn = np.random.randn(100,2)
rn1 = np.random.randint(10,size=(100,2))# 造数据, 这个环节随便造, 当时是想到哪儿写到哪儿
rndf = pd.DataFrame(data=rn,columns=['r1','r2'])
rndf['flg'] = 'bad'
rndf1 = pd.DataFrame(data=rn1,columns=['r1','r2'])
rndf1['flg'] = 'god'
rnd = pd.concat([rndf,rndf1])rnd['r3'] = np.random.randint(10,size=(200,1))
rnd['r4'] = np.random.randint(low=-10, high=10, size=(200,1))
rnd['r5'] = np.random.randint(low=10, high=100, size=(200,1))
rnd['r6'] = np.random.randint(low=60, high=100, size=(200,1))
rnd['r7'] = np.random.randint(low=-100, high=100 ,size=(200,1))# 重点编写函数def show_graph(df, lst):"""批量绘制box分布图形, 适用于分类标签的不同指标值的分布数据查看, 对于指标值很多的时候比较适用df : DataFrame数据lst : 需要绘制图形的字段"""sns.set()fig = plt.figure(figsize=(16,10)) # 这里的画布大小还是先设置好吧。for i in range(len(lst)):# 遍历每张子图ax = fig.add_subplot(2, 4, i + 1)sns.boxplot(x='flg', y=lst[i], hue='flg', data=rnd, ax=ax, meanline=True, showmeans=True, )# 单独设置了每个子图的标题, 为了方便查看, 也可以省略ax.set_title(lst[i]+'_index_contrast')# 设置子图之间的横纵边距, 不然会挤到一块, 影响阅读plt.subplots_adjust(wspace=0.3,hspace=0.3)# 函数调用
cols = []
# 提取需要绘图的字段, 遍历所有字段, 做下判断收入即可
for ls in list(rnd.columns.unique()):if ls.startswith('r'):cols.append(ls)show_graph(df=rnd, lst=cols)
plt.savefig('boxplots.png',dpi=1000)
# 下图为保存在本地的图片

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部