python 一口气画三类提琴图对比

news/2025/1/18 11:38:41/文章来源:https://www.cnblogs.com/shirleysu90/p/18678171

要从三个CSV文件中提取指定列名(这里是s2),并绘制小提琴图,其中横坐标是11km17km23km,纵坐标名称是S30/(km2),你可以使用Python的pandas库来处理CSV数据,seaborn库来绘制小提琴图,以及matplotlib库来设置图形属性。以下是一个完整的示例代码:

#!usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: Suyue
@file: violin.py
@time: 2025/01/18
@desc:
"""
import pandas as pd
import seaborn as sns
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt# CSV文件路径和对应的横坐标标签
csv_files = {'11km': '/5_area_.csv','17km': '/8_area_.csv','23km': '/11_area_.csv'
}# 提取数据
data_frames = []
for label, file_path in csv_files.items():df = pd.read_csv(file_path)if 's3' in df.columns:df['Label'] = label  # 添加标签列data_frames.append(df[['s3', 'Label']])  # 只保留s3列和标签列else:raise ValueError(f"Column 's3' not found in {file_path}")# 合并数据框
combined_df = pd.concat(data_frames, ignore_index=True)# 重命名列以匹配图形要求
combined_df.columns = ['S30/(km2)', 'Label']# 绘制小提琴图
plt.figure(figsize=(10, 6))
sns.violinplot(x='Label', y='S30/(km2)', data=combined_df)
# plt.title('Violin Plot of S30/(km2) for Different Distances')
plt.xlabel('Distance (km)')
plt.ylabel('S30/(k${m^2}$)')
plt.xticks(rotation=0)  # 旋转x轴标签以便更好地显示
plt.tight_layout()  # 自动调整子图参数, 使之填充整个图像区域
plt.show()

代码解释

  1. CSV文件路径和对应的横坐标标签:
    • csv_files字典包含每个CSV文件的路径和对应的横坐标标签(11km17km23km)。
  2. 提取数据:
    • 遍历csv_files字典,使用pd.read_csv读取每个文件。
    • 检查s2列是否存在,如果存在,则添加标签列Label并将数据框添加到data_frames列表中。
  3. 合并数据框:
    • 使用pd.concat将所有数据框合并为一个。
  4. 重命名列:
    • 将合并后的数据框中的列名从s2Label更改为S30/(km2)Label,以匹配图形要求。
  5. 绘制小提琴图:
    • 使用seaborn.violinplot函数绘制小提琴图。
    • 设置图形的大小、标题、轴标签和x轴标签的旋转角度。
    • 使用plt.tight_layout()来确保所有标签和标题都可见且不会重叠。

确保你的CSV文件路径和列名与代码中的一致。运行这段代码后,你将得到一个小提琴图,其中横坐标表示不同的距离(11km17km23km),纵坐标表示S30/(km2)的值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/871185.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【神兵利器】Windows平台shellcode免杀加载器

项目介绍 免杀,bypassav,免杀框架,nim,shellcode,使用nim编写的shellcode加载器,可快速生成免杀可执行文件 下载地址 Windows平台shellcode免杀加载器下载:Windows平台shellcode免杀加载器下载 项目特点 1:自带四种加载方式 2:可自行拓展加载方式 3:支持两种加密技术…

在电脑上记录工作内容和日记的软件哪款好用?

想要在电脑上随手记录工作内容、日记琐事、待办事项、日程安排等,哪款软件简单好用呢? 今天来介绍四款常用的电脑桌面记事软件,总有一款是你喜欢的? 一、sticky notes Sticky Notes 是 Windows 系统自带的便签工具,也叫 “便笺”。它以彩色便利贴的形式展现在电脑桌面上,…

JAVA安全之JDK8u141版本绕过研究

基本介绍 从JDK8u141开始JEP290中针对RegistryImpl_Skel#dispatch中bind、unbind、rebind操作增加了checkAccess检查,此项检查只允许来源为本地,下面以bind为例: public void dispatch(Remote var1, RemoteCall var2, int var3, long var4) throws Exception {if (var4 != 4…

漏洞预警 | Apache NiFi信息泄露漏洞

0x00 漏洞编号CVE-2024-565120x01 危险等级中危0x02 漏洞概述 Apache NiFi是一个强大的、易于使用的数据集成平台,旨在自动化和管理数据流,尤其是在大数据环境中。0x03 漏洞详情CVE-2024-56512漏洞类型:信息泄露 影响:获取敏感信息 简述:Apache NiFi的/nifi-api/flow/proc…

漏洞预警 | Netis Wifi路由器信息泄露漏洞

0x00 漏洞编号CVE-2024-484550x01 危险等级高危0x02 漏洞概述 Netis Wi-Fi路由器以其稳定的性能、易用的管理界面以及较高的性价比受到许多用户的青睐。0x03 漏洞详情CVE-2024-48455漏洞类型:信息泄露 影响:获取敏感信息 简述:Netis Wi-Fi路由器的/cgi-bin/skk_get.cgi接口存…

漏洞预警 | 明源地产ERP SQL注入漏洞

0x00 漏洞编号暂无0x01 危险等级高危0x02 漏洞概述 明源地产ERP是一款专为房地产行业设计的企业资源计划管理系统,致力于为房地产开发企业提供全面的管理解决方案。0x03 漏洞详情 漏洞类型:SQL注入 影响:获取敏感信息 简述:明源地产ERP系统的X-Forwarded-For头部存在SQL注入…

多项式算法初探:从 FFT 到 FWT(目前只有FFT)

多项式一向是算法竞赛中相当博大精深的东西,作为一个蒟蒻,我将会以最大的努力完成这篇记录,以防自己以后看不懂qwq。FFT(快速傅里叶变换) FFT 是一种可以在 \(O(n\log n)\) 的时间内完成多项式乘法的算法。这个算法的劣势在于精度。 我将会从复数、DFT、FFT 和 IFFT 四个部分…

漏洞预警 | WordPress Plugin Radio Player SSRF漏洞

0x00 漏洞编号CVE-2024-543850x01 危险等级高危0x02 漏洞概述 WordPress插件Radio Player是一种简单而有效的解决方案,用于将实时流媒体音频添加到您的WordPress网站。0x03 漏洞详情CVE-2024-54385漏洞类型:SSRF 影响:获取敏感信息 简述:Radio Player的/wp-admin/admin-aja…

从零开始的PHP原生反序列化漏洞

1、写在前面 OK 兄弟们,这几天一直在面试,发现很多 HR 喜欢问反序列化相关的内容,今天咱们就从最简单的 PHP 原生反序列化入手,带大家入门反序列化 2、PHP 序列化 在 PHP 中,有反序列化,就有序列化,我们先来解释一下序列化。 所谓序列化,就是将 PHP 的一个对象,序列化…

简单讲一下免杀的一个思想

这几天一直在忙,没时间学新东西,也不知道写什么,正好今天有人跟我要免杀,cs 二开的东西,这里就水一篇文章,带各位入门免杀,建立一个免杀思路。 1、什么是免杀? 首先各位需要了解一下,免杀的基本概念免杀,全称为反杀毒技术,用来使木马病毒程序逃过杀毒软件的检测免杀…

读量子霸权07光合作用

光合作用转化CO2、阳光、水为糖和氧气,对地球生命至关重要。量子计算机或能揭秘光合作用,助力高效光伏电池和作物增产。人工光合作用和“人工树叶”或对抗全球变暖,量子计算机或加速其进展。1. 光合作用 1.1. 生命起源的一幕主要戏剧便是光合作用,一个看似简单的过程1.1.1.…