用python绘制多变量的小提琴图

在这里插入图片描述
绘制不同公司在两个市场中的销量小提琴图如上,发现:

  • 需要核查原始数据集的销量数据是否规范,是否有负数或空缺值的情况
  • 从左数,
    – 第一个公司在两个市场下的销售量比较平均,在蓝色代表的市场中占领头部
    – 第二个基本没有在橙色代表的市场上有布局,和第一家公司在蓝色代表的市场中是激烈的竞争关系
    – 第三家公司在蓝色代表的市场中基本在末尾,橙色市场中也比较分散,
    – 第四家公司体量应该最小没什么水花

实现代码如下

import matplotlib.pyplot as plt
import seaborn as sns

# 设置字体为 Microsoft YaHei
plt.rcParams['font.family'] = 'Microsoft YaHei'

# 设置调色板
sns.set_palette("colorblind")

# 绘制图表
fig, ax = plt.subplots()
ax = sns.violinplot(x="集团", y="sales", hue="categoryName", split=True, data=d[d['Automotive_rank'] <= how_high])  #split为True就把两个小提琴放一起了
ax.set_title('Distribution of total bill amount per day', fontsize=16)
plt.show()

这段代码是使用Python的matplotlib和seaborn库来绘制小提琴图(violin plot),这是一种用于展示数据分布的可视化方法,特别适用于显示多个组的分布情况。下面是代码的逐步解释:

  1. import matplotlib.pyplot as pltimport seaborn as sns

    • 这两行代码导入了matplotlib和seaborn库。matplotlib是一个用于创建静态、交互式和实时的2D图表的Python库。seaborn是基于matplotlib的高级绘图库,它提供了一个高级接口,用于绘制吸引人的统计图形。
  2. plt.rcParams['font.family'] = 'Microsoft YaHei'

    • 这行代码设置了图表中使用的字体为Microsoft YaHei,这是一种常用的中文字体,确保中文字符能够正确显示。
  3. sns.set_palette("colorblind")

    • 这行代码设置了图表的颜色调色板为“colorblind”,这是一个为色盲用户设计的调色板,使用不同的颜色和图案来区分不同的数据组。
  4. fig, ax = plt.subplots()

    • 这行代码创建了一个图表对象fig和一个坐标轴对象axplt.subplots()是一个方便的工厂函数,用于创建一个图形和一个或多个子图。
  5. ax = sns.violinplot(x="集团", y="sales", hue="categoryName", split=True, data=d[d['Automotive_rank'] <= how_high])

    • sns.violinplot()是seaborn库中用于绘制小提琴图的函数。
    • x="集团":指定小提琴图的x轴数据,即每个小提琴代表的分组。
    • y="sales":指定小提琴图的y轴数据,即每个分组的数值。
    • hue="categoryName":指定颜色分组,即在每个小提琴内部,根据categoryName的不同,用不同的颜色表示不同的子组。
    • split=True:当hue参数存在时,这个参数设置为True会将每个小提琴图分成两部分,以显示不同子组的分布。
    • data=d[d['Automotive_rank'] <= how_high]:指定绘制图表的数据源,这里是一个DataFrame d,并且通过条件筛选只选择Automotive_rank小于或等于how_high的行。
  6. ax.set_title('Distribution of total bill amount per day', fontsize=16)

    • 这行代码设置了图表的标题,并且指定了标题的字体大小。
  7. plt.show()

    • 这行代码显示了图表。在Jupyter Notebook或其他IDE中,这会导致图表在输出中显示。

其他参数和应用案例:

  • linewidth:设置小提琴图边缘的线宽。
  • inner:控制小提琴内部的展示方式,可以是"quartile"(默认,显示四分位数),“std”(显示标准差),“point”(显示每个数据点)等。
  • scale:控制小提琴图的宽度,可以是"area"(根据数据量自动调整宽度)或"width"(固定宽度)。
  • orient:控制小提琴图的方向,可以是"v"(垂直,默认)或"h"(水平)。

更多应用案例:

  • 比较不同地区销售额的分布。
  • 展示不同年龄段人群的收入分布。
  • 比较不同产品类别的评分分布。

这些图表非常适合于展示和比较数据的分布特征,尤其是当数据具有偏态分布或者有多模态(多个峰值)时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐木叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值