盒形图又称箱图,主要用来显示与类别相关的数据分布。
案例代码已上传:Github地址
import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例1: 横向的箱图 """ sns.boxplot(x=tips["total_bill"]) plt.show() import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例2: 根据数据情况,指定x变量名进行数据分组,y变量进行数据分布 """ sns.boxplot(x="day", y="total_bill", data=tips) plt.show() import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例3: 指定hue对分组数据进行第二次分类(通过颜色进行区别) """ sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set3") plt.show() import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例4: 设置linewidth 来指定边框的粗细 """ sns.boxplot(x="day", y="total_bill", hue="time", data=tips, linewidth=2.5) plt.show() import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例5: 通过设置order来显式指定分类顺序 order=[字段变量名1,字段变量名2,...] """ sns.boxplot(x="time", y="tip", data=tips, order=["Dinner", "Lunch"]) plt.show() import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 iris = sns.load_dataset("iris") """ 案例 a """ iris[:5] import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 iris = sns.load_dataset("iris") """ 案例6: 为DataFrame中的每一个变量绘制一个方框图 结合案例a """ sns.boxplot(data=iris, orient="h", palette="Set2") plt.show() import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 iris = sns.load_dataset("iris") """ 案例7: 在箱图上绘制分簇散点图 """ sns.boxplot(x="day", y="total_bill", data=tips) sns.swarmplot(x="day", y="total_bill", data=tips, color=".25") plt.show() import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 iris = sns.load_dataset("iris") """ 案例8: 利用catplot()来实现boxplot()的效果(通过指定kind="box") """ sns.catplot(x="sex", y="total_bill", hue="smoker", col="time", data=tips, kind="box", height=4, aspect=.7); plt.show()上述案例代码已上传:Github地址 Github地址https://github.com/Vambooo/SeabornCN
更多技术干货在公众号:数据分析与可视化学研社