小提琴图绘制

小提琴图(Violin Plot)是一种数据可视化图表,通常用于显示数据分布和概率密度。它结合了箱线图(Box Plot)和核密度估计图(Kernel Density Plot)的特点,提供了更丰富的信息。

小提琴图(Violin Plot)由几个主要组成部分构成,主要包括以下元素:

  • 小提琴体(Violin Body): 小提琴体是图表的主体部分,通常呈现为两个镜像的核密度估计图,沿着数轴展开。这部分展示了数据的分布情况,宽度表示在该位置的数据点密度,即频率。较宽的部分表示数据点较密集,较窄的部分表示数据点较稀疏。
  • 箱线图(Box Plot): 小提琴图的中间通常包含一个箱线图,用于显示数据的五个统计指标:最小值、第一四分位数(Q1)、中位数、第三四分位数(Q3)、和最大值。这有助于识别数据的离群值。
  • 顶端和底端: 小提琴图的两端是小提琴体的边界线,标志着数据点的密度分布情况。这些边界线通过核密度估计图来形成,反映了数据在不同位置的密度。边界线的形状和宽度取决于数据的分布,而且不一定对应于数据的最大和最小值。
  • 异常值标记(Outliers): 小提琴图中的箱线图可能包含异常值标记,表示数据中的离群值。

​ 小提琴图的整体形状提供了一种对数据分布的直观感受,结合了箱线图和核密度估计图的特点,使得它在展示数据集中趋势和分布形状时非常有用。

在这里插入图片描述

示例1:用numpy生成随机数据绘制单个小提琴图。代码如下:

#导入相关的模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 创建一个示例DataFrame
data1=pd.DataFrame()
#生成一些随机数据
data1['A']=[np.random.rand(1,20)]
# 绘制小提琴图
fig,ax=plt.subplots()
ax.violinplot(data1['A'],
              vert=True,  #垂直分布
              showmedians=True)  #标记中位数
ax.set_xlabel('A',fontsize=12)  #设置x轴标签
ax.set_ylabel('Value',fontsize=12)  #设置y轴标签
#保存图片
fig.savefig('小提琴图示例1.png',dpi=400)
# 显示图形
plt.show()

结果如图如下:

在这里插入图片描述

示例2:基于某站点2018年1月的温度数据绘制小提琴图。数据文件为"wendu.csv"。

代码如下:

#导入相关的库
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

plt.rcParams['font.sans-serif'] = ['simsun']  # 显示中文

#读入数据
data=pd.read_csv('wendu.csv',header=0)
data_1=pd.DataFrame()
data_1['Tmean']=data['Tmean']
data_2=pd.DataFrame()
data_2['Tmax']=data['Tmax']
data_3=pd.DataFrame()
data_3['Tmin']=data['Tmin']
#将每组数据放到一个列表中,方便绘图
plt_data=[data_1['Tmean'],
          data_2['Tmax'],
          data_3['Tmin']]



# 使用 Matplotlib 绘制小提琴图和箱线图
fig, ax = plt.subplots(figsize=(12, 8))

# 绘制小提琴图
violin_parts = ax.violinplot(plt_data,
                             showmedians=False, #不展示中位数
                             vert=True,  #垂直分布
                             widths=0.7, #宽为0.7
                             showextrema=False)  #不显示异常值

# 设置小提琴图的颜色
cmap = plt.cm.get_cmap('Accent')(np.linspace(0, 1, 3))
for pc, col in zip(violin_parts['bodies'], cmap):
    pc.set_facecolor(col)


# 绘制箱线图
box_parts = ax.boxplot(plt_data,
                       sym='k+',
                       vert=True,
                       widths=0.1,
                       showmeans=True,
                       meanline=False,
                       meanprops=dict(marker='o',markerfacecolor='r'),
                       patch_artist=True,
                       medianprops=dict(color='red'),
                       boxprops=dict(facecolor='w'))

# # 设置箱线图的颜色
# for box in box_parts['boxes']:
#     box.set_facecolor('white')

#绘制折线图,以各温度的均值为数据
x=list(np.arange(1,4))
y=[data_1['Tmean'].mean(),data_2['Tmax'].mean(),data_3['Tmin'].mean()]
ax.plot(x,y,c='b',ls=':')




# 添加标题和标签
ax.set_title('日序列温度小提琴图', fontsize=16)
ax.set_ylabel('温度($^\circ$C)', fontsize=12)
ax.set_xticks(np.arange(1, 4))
ax.set_xticklabels(['日平均温度','日最高温度','日最低温度'], fontsize=12)

#保存图片
fig.savefig('日序列温度小提琴图.png',dpi=400)
#展示图片
plt.show()

结果图如下:

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要绘制小提琴,可以使用 Matlab 的 `violinplot` 函数。以下是一个简单的例子,用于演示如何使用该函数绘制小提琴: ```matlab % 创建数据 data = [randn(100,1); 2+randn(50,1)]; % 绘制小提琴 figure; violinplot(data); % 添加标题和标签 title('小提琴'); xlabel('数据'); ylabel('值'); ``` 运行此代码将生成一个包含小提琴形窗口。你可以根据需要进行调整,如更改标题、标签、颜色和其他属性。 注意:为了使用 `violinplot` 函数,你需要安装 `Violinplot-Matlab` 工具箱。可以在 MathWorks 的文件交换网站上找到该工具箱。 ### 回答2: 小提琴是一种用于展示数据分布的统计表。在Matlab中,可以使用Violinplot函数绘制小提琴。 首先,需要将数据组织成一个向量或矩阵的形式,每一列代表一个不同的数据组。然后,使用Violinplot函数来绘制小提琴。例如,假设有两组数据A和B,可以按照以下步骤进行绘制: 1. 将数据组织成一个矩阵:data = [A, B]。 2. 调用Violinplot函数,传入数据矩阵并设置其他参数,如颜色、线型等。例如,可以使用以下代码绘制小提琴: ```matlab figure violinplot(data, 'ShowData', false, 'ShowMean', true, 'ViolinColor', [0.5 0.5 0.5], 'BoxColor', [0.5 0.5 0.5]) ylabel('数据值') xlabel('数据组') title('小提琴') ``` 在这个例子中,设置了参数`'ShowData', false`来隐藏每个数据点的显示,`'ShowMean', true`来显示每个小提琴中的均值点,`'ViolinColor', [0.5 0.5 0.5]`和`'BoxColor', [0.5 0.5 0.5]`分别设置小提琴和箱线的颜色。 绘制出来的小提琴会展示数据的分布情况,包括中位数、均值等统计信息。可以根据需要调整代码中的参数和样式,使得表更符合实际需求。 使用Matlab绘制小提琴可以直观地展示数据的分布情况,帮助分析者更好地理解数据的特征和统计信息。 ### 回答3: 小提琴是一种用于展示数据分布情况的统计形,通常用于比较不同组或类别之间的数据。Matlab是一种功能强大的数学计算软件工具,也可以用于绘制小提琴。 要使用Matlab绘制小提琴,可以按照以下步骤进行: 1. 准备数据:首先需要准备要绘制的数据。这些数据可以是从实验中获得的观测值或者是模拟结果。 2. 使用Matlab绘函数:Matlab提供了许多绘函数,其中包括绘制小提琴所需的相关函数。常用的函数包括`violinplot`和`violin`。 - `violinplot`函数用于绘制多个小提琴。在此函数中,可以设置小提琴的样式和属性,例如线条颜色、填充颜色、边界宽度等。此外,还可以添加轴标签和标题,以便更直观地了解数据。 - `violin`函数用于绘制单个小提琴。这个函数的用法与`violinplot`函数类似,可以通过设置不同的属性来自定义小提琴的样式。 3. 输入数据并绘制小提琴:将准备好的数据输入到相应的绘函数中,并执行绘命令。Matlab会根据输入的数据和设置的属性,自动为每个小提琴绘制相应的形状和属性。 4. 查看和调整小提琴绘制完成后,可以查看小提琴,并根据需要进行调整。如果需要添加更多的样式或修饰,可以使用Matlab提供的其他函数和命令来实现。 总之,使用Matlab绘制小提琴是一个相对简单的过程。只需准备好数据,选择合适的绘函数,并设置适当的属性,即可得到满意的小提琴。在绘制过程中,还可以根据需要对形进行调整和修饰,以便更好地表达数据分布的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值