📜  在Python使用 Plotly 的小提琴图(1)

📅  最后修改于: 2023-12-03 15:07:56.263000             🧑  作者: Mango

在Python使用 Plotly 的小提琴图

小提琴图是一种可视化数据分布的图表,与箱线图类似,它可以显示数据的中位数、四分位数、最大最小值和异常值。与箱线图不同的是,小提琴图可以表示数据的核密度估计,更直观地展示数据分布情况。

Plotly 是一款交互式的数据可视化库,支持多种图表类型,包括小提琴图。本文将介绍如何在 Python 中使用 Plotly 绘制小提琴图。

安装 Plotly

在开始绘制小提琴图前,需要先安装 Plotly 库。可以使用以下命令在命令行中安装 Plotly:

pip install plotly
导入库和数据

在开始绘制小提琴图前,需要导入必要的库和用于绘图的数据。以下是一个示例数据:

import plotly.express as px

# 导入数据
df = px.data.tips()

# 查看数据前几行
print(df.head())

输出结果:

   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

这是一个包含消费账单、小费、性别、是否吸烟、日期、就餐时间和餐桌大小的数据集。

绘制小提琴图

使用 px.violin 函数绘制小提琴图,指定 x 轴和 y 轴的列名即可。例如,如果我们想绘制吸烟者和非吸烟者的小费金额分布情况,可以使用以下代码:

fig = px.violin(df, x="smoker", y="tip")

# 显示图表
fig.show()

输出结果:

小提琴图

可以看到,吸烟者和非吸烟者的小费金额分布情况有一定区别。这个小提琴图也支持交互式功能,例如放大、缩小、查看数值等等。

改进小提琴图

可以使用 points 参数来显示每个数据点,使用 box 参数来显示箱线图,使用 meanline 参数来显示均值线。以下代码演示了如何同时显示小提琴图、箱线图和均值线:

fig = px.violin(df, x="smoker", y="tip", box=True, points="all", meanline=True, hover_data=['sex'])

# 显示图表
fig.show()

输出结果:

小提琴图2

可以看到,数据点、箱线图和均值线都被同时显示了出来,可以更加清晰地了解数据分布情况。

小结

使用 Plotly 绘制小提琴图非常简单,在指定列名后就可以轻松地绘制出小提琴图。可以通过添加参数来改进小提琴图的显示,例如增加数据点、箱线图和均值线等。