代码-画图函数示例

热力图

在这里插入图片描述

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as npdef create_heatmap(people, categories, data=None, title='热力图', xlabel='类别', ylabel='人员',value_range=(0.6, 0.95), figsize=(10, 6),cmap='YlOrRd', decimal_places=3):"""创建热力图参数:people: list, 人员名称列表categories: list, 类别名称列表data: numpy.ndarray, 可选,数据矩阵。如果为None,将自动生成随机数据title: str, 图表标题xlabel: str, x轴标签ylabel: str, y轴标签value_range: tuple, 数值范围,用于生成随机数据和设置颜色范围figsize: tuple, 图形大小cmap: str, 颜色方案decimal_places: int, 显示数值的小数位数返回:matplotlib.figure.Figure: 生成的图形对象"""# 设置中文字体plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False    # 用来正常显示负号# 如果没有提供数据,生成随机数据if data is None:data = np.random.uniform(value_range[0], value_range[1], size=(len(people), len(categories)))# 创建图形plt.figure(figsize=figsize)# 创建热力图sns.heatmap(data, annot=True,                    # 显示数值fmt=f'.{decimal_places}f',     # 数值格式cmap=cmap,                     # 颜色方案xticklabels=categories,        # x轴标签yticklabels=people,            # y轴标签vmin=value_range[0],           # 颜色条最小值vmax=value_range[1])           # 颜色条最大值# 设置标题和轴标签plt.title(title)plt.xlabel(xlabel)plt.ylabel(ylabel)# 调整布局plt.tight_layout()return plt.gcf()# 使用示例
if __name__ == "__main__":# 基本使用people = ['甲', '乙', '丙']categories = ['A', 'B', 'C', 'D', 'E']# 方式1:使用默认随机数据fig = create_heatmap(people, categories)plt.show()# 方式2:提供自定义数据custom_data = np.array([[0.85, 0.72, 0.93, 0.88, 0.76],[0.92, 0.83, 0.75, 0.81, 0.89],[0.78, 0.91, 0.86, 0.77, 0.82]])fig = create_heatmap(people=people,categories=categories,data=custom_data,title='自定义数据热力图',xlabel='指标类别',ylabel='人员',value_range=(0.7, 0.95),figsize=(12, 8),cmap='YlOrBl',decimal_places=2)plt.show()# 更多使用示例:
"""
# 使用不同的颜色方案
create_heatmap(people, categories, cmap='viridis')# 更改数值范围
create_heatmap(people, categories, value_range=(0, 1))# 自定义图形大小
create_heatmap(people, categories, figsize=(15, 8))# 调整小数位数
create_heatmap(people, categories, decimal_places=2)
"""

柱状图

--
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
import matplotlib.pyplot as plt
import numpy as npdef set_chinese_font():"""设置中文字体"""plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False    # 用来正常显示负号def simple_bar(categories, values, title='简单柱状图', xlabel='类别', ylabel='数值',color='skyblue', figsize=(10, 6), show_values=True):"""绘制简单柱状图参数:categories: 类别名称列表values: 数值列表title: 图表标题xlabel: x轴标签ylabel: y轴标签color: 柱子颜色figsize: 图形大小show_values: 是否显示数值标签"""set_chinese_font()plt.figure(figsize=figsize)bars = plt.bar(categories, values, color=color)plt.title(title)plt.xlabel(xlabel)plt.ylabel(ylabel)if show_values:for bar in bars:height = bar.get_height()plt.text(bar.get_x() + bar.get_width()/2., height,f'{height:.1f}',ha='center', va='bottom')plt.tight_layout()return plt.gcf()def grouped_bar(categories, data_dict, title='分组柱状图', xlabel='类别', ylabel='数值',figsize=(12, 6), show_values=True):"""绘制分组柱状图参数:categories: 类别名称列表data_dict: 数据字典,格式为 {'组名': [数值列表]}title: 图表标题xlabel: x轴标签ylabel: y轴标签figsize: 图形大小show_values: 是否显示数值标签"""set_chinese_font()plt.figure(figsize=figsize)n_groups = len(categories)n_bars = len(data_dict)bar_width = 0.8 / n_barscolors = plt.cm.Paired(np.linspace(0, 1, n_bars))for idx, (label, values) in enumerate(data_dict.items()):x = np.arange(n_groups) + idx * bar_widthbars = plt.bar(x, values, bar_width, label=label, color=colors[idx])if show_values:for bar in bars:height = bar.get_height()plt.text(bar.get_x() + bar.get_width()/2., height,f'{height:.1f}',ha='center', va='bottom')plt.title(title)plt.xlabel(xlabel)plt.ylabel(ylabel)plt.xticks(np.arange(n_groups) + (bar_width * (n_bars-1))/2, categories)plt.legend()plt.tight_layout()return plt.gcf()def stacked_bar(categories, data_dict, title='堆叠柱状图', xlabel='类别', ylabel='数值',figsize=(10, 6), show_values=True):"""绘制堆叠柱状图参数:categories: 类别名称列表data_dict: 数据字典,格式为 {'组名': [数值列表]}title: 图表标题xlabel: x轴标签ylabel: y轴标签figsize: 图形大小show_values: 是否显示数值标签"""set_chinese_font()plt.figure(figsize=figsize)bottom = np.zeros(len(categories))colors = plt.cm.Paired(np.linspace(0, 1, len(data_dict)))for idx, (label, values) in enumerate(data_dict.items()):plt.bar(categories, values, bottom=bottom, label=label, color=colors[idx])if show_values:for i, v in enumerate(values):plt.text(i, bottom[i] + v/2, f'{v:.1f}',ha='center', va='center')bottom += valuesplt.title(title)plt.xlabel(xlabel)plt.ylabel(ylabel)plt.legend()plt.tight_layout()return plt.gcf()def horizontal_bar(categories, values, title='横向柱状图', xlabel='数值', ylabel='类别',color='skyblue', figsize=(10, 6), show_values=True):"""绘制横向柱状图参数:categories: 类别名称列表values: 数值列表title: 图表标题xlabel: x轴标签ylabel: y轴标签color: 柱子颜色figsize: 图形大小show_values: 是否显示数值标签"""set_chinese_font()plt.figure(figsize=figsize)y_pos = np.arange(len(categories))bars = plt.barh(y_pos, values, color=color)plt.yticks(y_pos, categories)plt.title(title)plt.xlabel(xlabel)plt.ylabel(ylabel)if show_values:for bar in bars:width = bar.get_width()plt.text(width, bar.get_y() + bar.get_height()/2.,f'{width:.1f}',ha='left', va='center')plt.tight_layout()return plt.gcf()# 使用示例
if __name__ == "__main__":# 示例数据categories = ['产品A', '产品B', '产品C', '产品D']values = np.random.randint(50, 100, size=len(categories))# 分组数据group_data = {'2021年': np.random.randint(50, 100, size=len(categories)),'2022年': np.random.randint(50, 100, size=len(categories)),'2023年': np.random.randint(50, 100, size=len(categories))}# 绘制简单柱状图simple_bar(categories, values, title='销售数据')plt.show()# 绘制分组柱状图grouped_bar(categories, group_data, title='年度销售对比')plt.show()# 绘制堆叠柱状图stacked_bar(categories, group_data, title='年度销售累计')plt.show()# 绘制横向柱状图horizontal_bar(categories, values, title='销售数据(横向)')plt.show()

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

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

相关文章

2024最新Twitter养号全面指南,品牌起号必看!

X (Twitter)作为活跃用户数以亿计的社交媒体平台,用户数依然在不断增长,其中巨大的流量吸引着个人用户与品牌和卖家。 Twitter养号是有必要的,有大量案例表明养好号,可以大幅度降低账号被冻结的几率,并提升账号的稳定…

百度如何打造AI原生研发新范式?

👉点击即可下载《百度AI原生研发新范式实践》资料 2024年10月23-25日,2024 NJSD技术盛典暨第十届NJSD软件开发者大会、第八届IAS互联网架构大会在南京召开。本届大会邀请了工业界和学术界的专家,优秀的工程师和产品经理,以及其它行…

基于大语言模型(LLM)自主Agent 智能体综述

近年来,LLM(Large Language Model)取得了显著成功,并显示出了达到人类智能的巨大潜力。基于这种能力,使用LLM作为中央控制器来构建自助Agent,以获得类人决策能力。 Autonomous agents 又被称为智能体、Agent。指能够通过感知周围环境、进行规划以及执行动作来完成既定任务。…

电脑怎么设置开机密码:保障个人信息安全的第一步

在数字化时代,个人信息的安全至关重要。电脑作为我们日常工作和生活中不可或缺的设备,存储了大量的私人数据和敏感信息。为了防止未经授权的访问,设置开机密码是保护个人隐私和信息安全的基本措施之一。本文将详细介绍如何在不同操作系统下为…

分析 std::optional 的使用与常见错误

文章目录 引言常见错误及解决方案1. 错误使用 std::optional 变量进行算术运算2. 错误检查 std::optional 是否有值3. 忽视 std::optional 的默认值 结论 引言 std::optional 是 C17 引入的一个模板类,用于表示可能有也可能没有值的情况。它特别适用于函数返回值&a…

DB-GPT系列(二):DB-GPT部署(镜像一键部署、源码部署)

一、简介 DB-GPT 是一个开源项目,其将大语言模型 LLM 与数据库紧密结合。该项目主要致力于探索如何让预训练的大规模语言模型(例如 GPT)能够直接与数据库进行交互,从而生成更为准确且信息丰富的回答。 DB-GPT部署后能否直接使用…

Web组件之 Listener (监听器)

文章目录 1.1 Listener概述1.2 Listener快速入门① xml版本② 注解版本 1.3 案例:模拟spring框架 1.1 Listener概述 ​ JavaWeb 中的监听器是监听 ServletContext HttpSession HttpServletRequest 三个数据域对象创建和销毁以及监听数据域对象中数据的变化&#xf…

【论文翻译】IJCAI 2019 | Graph WaveNet:用于深度时空图建模的Graph WaveNet

论文题目Graph WaveNet for Deep Spatial-Temporal Graph Modeling作者团队Zonghan Wu, Shirui Pan, Guodong Long, Jing Jiang, Chengqi Zhang机构澳大利亚悉尼科技大学人工智能中心 (UTS) 和 澳大利亚莫纳什大学发表会议IJCAI 2019论文链接https://www.ijcai.org/proceedings…

Java数组的定义与使用

今天来学习Java数组的定义与使用 目录 1 数组的基本概念1.1 数组的意义1.2 数组的定义1.3 数组的创建及初始化1.3.1 数组的创建1.3.2 数组的初始化 1.4 数组的使用1.4.1 数组中的元素访问1.4.2 遍历数组运行结果运行结果 2 数组是引用类型2.1 初始 JVM 的内存分布2.2 基本类型变…

https://tieba.baidu.com/p/9247698007

微深节能的库区智能化无人天车管理系统结合了格雷母线技术,提供了一种高精度的定位解决方案。格雷母线系统能够实现连续或断续的位置检测,精度高达≤5mm,适用于需要高精度作业的场景,如货物搬运和堆放。这种系统通过实时交互&…

创作里程碑:纪念日回顾与展望

目录 机缘:创作者初心 1. 实战项目 2. 日常学习 3. 技术交流 4. 总结 收获:创作者动力 创作与工作、学习的关系 憧憬:职业规划与创作规划 职业规划: 创作规划: 机缘:创作者初心 回望自己踏上…

软考(中级-软件设计师)数据库篇(1101)

第6章 数据库系统基础知识 一、基本概念 1、数据库 数据库(Database ,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和扩展…

go-zero 的使用

目录 1. 生成 user api 服务 2. 生成 user rpc 服务 3. 生成 user model 模型 4. 编写 user rpc 服务 1 修改配置文件 user.yaml 2 添加 user model 依赖 3 添加用户登录逻辑 Login 5. 编写 user api 服务 1 修改配置文件user.yaml 2 添加 user rpc 依赖 3 添加用户…

基金委:目前资助率过低,危害大,应提升至30~35%,增大青年、面上项目经费

国家基金委 近日,国家基金委发表题为《近十年 NSF资助率和资助强度上升 对我国科学基金资助工作的启示》文章,文章基于近十年 NSF总体资助变化,提出对我国科学基金资助工作启示,阐述了国家自然基金项目资助率下降情况、危害,并提…

NPM 包开发与优化全面指南

前言 Hey, 我是 Immerse系列文章首发于【Immerse】,更多内容请关注该网站转载说明:转载请注明原文出处及版权声明! 1. 理解 NPM 包的结构 1.1 package.json 文件:包的核心 package.json文件是 NPM 包的中央配置,定…

学Linux的第六天

目录 账户和组管理 工作组管理 创建工作组groupadd 修改工作组groupmod 添加/删除组成员gpasswd 删除工作组groupdel 查看用户登录系统的情况 users查看当前登录系统的用户 last命令 lastlog命令 w命令 显示登录到系统的用户信息 who命令 Linux文件系统权限 文件…

来康生命科技有限公司心率监测解决方案在健身房与康养机构的应用探索

引言 随着科技的日新月异,智能健康服务正逐步成为现代健康管理不可或缺的一环。来康生命科技有限公司,凭借其在智能物联集成交互领域的自主创新能力,推出了一款集蓝牙物联网、蓝牙手环、数据云与管理终端于一体的心率监测解决方案。此方案专…

在 .NET 8 Web API 中实现 Entity Framework 的 Code First 方法

本次介绍分为3篇文章: 1:.Net 8 Web API CRUD 操作.Net 8 Web API CRUD 操作-CSDN博客 2:在 .Net 8 API 中实现 Entity Framework 的 Code First 方法https://blog.csdn.net/hefeng_aspnet/article/details/143229912 3:.NET …

C++类和对象上

1. 类的定义 1.1 类定义格式 • class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的⽅法或者成员函数。…

NineData云原生智能数据管理平台新功能发布|2024年10月版

10 月发布内容 本月发布 7 项更新,其中重点发布 2 项、功能优化 3 项、性能优化 1 项、其他发布 1 项。 重点发布​ 数据库 Devops - 数据生成​ NineData 支持在数据库中自动生成符合特定业务场景的随机数据,用于模拟实际生产环境中的数据情况&…