小提琴图的绘制方法:Python matplotlib实现

  本文介绍基于Pythonmatplotlib模块与seaborn模块,利用多个列表 中的数据,绘制小提琴图(Violin Plot)的方法。

  小提琴图作为一种将箱型图核密度图 分别所能表达的信息相结合的数据可视化图,在数据分析中得以广泛应用;本文就详细介绍在Python 中,对存储于多个列表(List)中的数据,绘制小提琴图的方法。其中,绘制得到的结果如下图所示。

  本文用到的完整代码如下所示。

python 复制代码
# -*- coding: utf-8 -*-
"""
Created on Thu Dec  1 18:55:01 2022

@author: fkxxgis
"""

import matplotlib.pylab as plt
import seaborn as sns
import pandas as pd

pic_save_name = "E:/Pic/Violin.png"

li_1 = [1, 2, 3]
li_2 = [2.5, 5, 10, 8, 4, 5, 9, 9.5]
li_3 = [1.5, 2.5, 3.5, 6.5]

plt.figure(dpi = 300)
plt.rcParams["font.family"] = "SimSun"
plt.rcParams["axes.unicode_minus"] = False

label = ["第一个刻度标签", "第二个刻度标签", "第三个刻度标签"]
font_1 = {"size": 14}

sns.violinplot(data = [li_1, li_2, li_3])
plt.xlabel("横坐标标签", font_1)
plt.ylabel("纵坐标标签", font_1)
plt.xticks(ticks = [0, 1, 2], labels = label, fontsize = 11)
plt.yticks(fontsize = 12)

plt.savefig(pic_save_name)
plt.show()

  其中,pic_save_name表示我们绘图完毕后,保存图片的路径;li_1li_2li_3是三个列表,其各自的元素个数可以相同,也可以不同,我们稍后需要分别对三者中的数据绘制小提琴图;plt.figure(dpi = 300)表示设置绘图的DPI300,其后的第一句代码plt.rcParams["font.family"] = "SimSun"表示图片中的图例、坐标轴标签与刻度标签都用宋体 来表示,第二句代码plt.rcParams["axes.unicode_minus"] = False是为了防止图中出现无法绘制负号 的情况;随后,label表示刻度标签的具体内容,font_1来设置坐标轴标签的字体大小。

  接下来,我们即可通过sns.violinplot()函数绘制小提琴图;这一函数还有很多参数,可以调整小提琴图的各项可视化配置,具体大家可以查看函数的官方帮助文档。随后,通过plt.xlabel()函数、plt.xticks()函数等调整图片坐标轴标签、刻度标签的具体配置。最后,通过plt.savefig()函数将绘制好的小提琴图保存在指定路径中。

  至此,大功告成。

相关推荐
用户83562907805114 小时前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
宇宙之一粟21 小时前
乐企版式文件生成平台
java·后端·python
学测绘的小杨2 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz3102 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐2 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱2 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot2 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海3 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱3 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽3 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict