【python】可视化

news2024/11/29 8:46:08

柱状图

matplotlib之pyplot模块之柱状图(bar():基础参数、外观参数)_plt.bar_mighty13的博客-CSDN博客

bar()的基础参数如下:

x:柱子在x轴上的坐标。浮点数或类数组结构。注意x可以为字符串数组!
height:柱子的高度,即y轴上的坐标。浮点数或类数组结构。
width:柱子的宽度。浮点数或类数组结构。默认值为0.8。
bottom:柱子的基准高度。浮点数或类数组结构。默认值为0。
align:柱子在x轴上的对齐方式。字符串,取值范围为{'center', 'edge'},默认为'center'。
'center':x位于柱子的中心位置。
'edge':x位于柱子的左侧。如果想让x位于柱子右侧,需要同时设置负width 以及align='edge'。

 

MODELsAUCAUC(error误差)
M10.8562674730.042804689
M20.903370090.04444241
M30.9305753810.043041211
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

plt.rcParams['font.sans-serif'] = ['STKaiTi']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

data1 = pd.read_excel('C:\\Users\\ASUS\\Desktop\\data.xlsx', sheet_name='MOUSE')  # AUC
data2 = pd.read_excel('C:\\Users\\ASUS\\Desktop\\data.xlsx', sheet_name='humanSTD')  # AUC(误差)

# 数据
data = data1['AUC']
errors = data2['AUC']
labels = ['M1', 'M2', 'M3']

# 创建一个颜色列表,包含每个柱子对应的颜色
colors = ['skyblue', 'lightgreen', 'orange']
# 计算柱子的宽度,使它们没有间隙
bar_width = 1
# 创建直方图,并设置颜色
plt.figure(dpi=300)
plt.title('不同模型的AUC值')
# 绘制柱状图,并为每个数据系列设置标签
for i in range(len(data)):
    plt.bar(labels[i], data[i], yerr=errors[i], capsize=5, width=bar_width, color=colors[i], label=f'M{i + 1}')
# 添加数据标签
for i in range(len(data)):
    plt.text(labels[i], data[i] + 0.05, f'{data[i]:.3f}', ha='center')
# 添加标签和标题
plt.xlabel('模型')
plt.ylabel('AUC')
# 添加图例
plt.legend()
# 绘制散点图
for i in range(len(data)):
    plt.scatter(labels[i], data[i], c="black", zorder=2)
# 取出上边框和右边框
ax = plt.gca()
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
# 显示图形
plt.show()

 

要求:1.画出三个模型的AUC柱状图 2.每个柱子上要有数据标签 3.每个柱子上要有代表误差的误差条  4.要取出表格的上边框和右边框 5.在柱状图中间画一个点

如果需要加上legend图例,由于我们是直接用plt.bar()画出3个柱子,所以无法加上图例。所以我们需要借助for循环依次画上柱子并打上标签

# 绘制柱状图,并为每个数据系列设置标签
for i in range(len(data)):
    plt.bar(labels[i], data[i], yerr=errors[i], capsize=5, width=bar_width, color=colors[i], label=f'M{i + 1}')

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

plt.rcParams['font.sans-serif'] = ['STKaiTi']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

data1 = pd.read_excel('C:\\Users\\ASUS\\Desktop\\data.xlsx', sheet_name='MOUSE')
data2 = pd.read_excel('C:\\Users\\ASUS\\Desktop\\data.xlsx', sheet_name='humanSTD')

# 数据
data = data1['AUC']
errors = data2['AUC']
labels = ['M1', 'M2', 'M3']

# 创建一个颜色列表,包含每个柱子对应的颜色
colors = ['skyblue', 'lightgreen', 'orange']
# 计算柱子的宽度,使它们没有间隙
bar_width = 1
# 创建直方图,并设置颜色
plt.figure(dpi=300)
plt.title('不同模型的AUC值')
# 绘制柱状图,并为每个数据系列设置标签
for i in range(len(data)):
    plt.bar(labels[i], data[i], yerr=errors[i], capsize=5, width=bar_width, color=colors[i], label=f'M{i + 1}')
# 添加数据标签
for i in range(len(data)):
    plt.text(labels[i], data[i] + 0.05, f'{data[i]:.3f}', ha='center')
# 添加标签和标题
plt.xlabel('模型')
plt.ylabel('AUC')
# 添加图例
plt.legend()
# 绘制散点图
for i in range(len(data)):
    plt.scatter(labels[i], data[i], c="black", zorder=2)
# 取出上边框和右边框
ax = plt.gca()
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
# 显示图形
plt.show()

多类别柱状图

饼图 

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['STKaiTi'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

plt.figure(num = 1,figsize = (10,10),dpi=200) # 设置画布
plt.title("饼图")  # 设置画布标题
plt.pie(x = [20,30,10,50],  # 数据
        explode = (0,0.05,0,0) ,  # 指定饼图某些部分的突出显示,即呈现爆炸式
        labels = ['A','B','C','D'],  # 添加标签
        colors = ['yellowgreen','gold','skyblue','coral'],  #自定义颜色
        shadow = True,  # 阴影
        autopct='%.2f%%',  #设置百分比的格式,这里保留两位小数
        pctdistance=0.8,  #设置百分比标签与圆心的距离
        labeldistance=0.5,  #设置标签与圆心的距离
        startangle=180,  #设置饼图的初始角度
        radius=0.8,  #设置饼图的半径
        counterclock=False,  #是否逆时针,这里设置为顺时针方向
        wedgeprops={'linewidth':1.5, 'edgecolor':'green'},  #设置饼图内外边界的属性值
        textprops={'fontsize':15, 'color':'black'} #设置文本标签的属性值
        )
plt.show()

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

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

相关文章

【MySQL】七种SQL优化方式 你知道几条

1.插入数据 1.1insert 如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。 insert into tb_test values(1,tom); insert into tb_test values(2,cat); insert into tb_test values(3,jerry); 1). 优化方案一 批量插入数据 Insert into t…

CSS 一个好玩的卡片“开卡效果”

文章目录 一、用到的一些CSS技术二、实现效果三、代码 一、用到的一些CSS技术 渐变 conic-gradientbox-shadowclip-path变换、过渡 transform、transition动画 animation keyframes伪类、伪元素 :hover、::before、::after …绝对布局。。。 clip-path 生成网站 https://techb…

新手做TikTok适合哪些类目?

现在很多小伙伴争先恐后想要在TikTok入驻,开店开直播带货赚钱,但是又怕自己是小白,不好拿捏这个平台。TikTok平台,适合小白做吗?现在tiktok千亿级的流量还处于蓝海阶段,想入局要趁早。那么肯定又有小伙伴疑…

PostgreSQL本地化

本地化的概念 本地化的目的是支持不同国家、地区的语言特性、规则。比如拥有本地化支持后,可以使用支持汉语、法语、日语等等的字符集。除了字符集以外,还有字符排序规则和其他语言相关规则的支持,例如我们知道(‘a’,‘b’)该如何排序&…

Ubuntu 升级cuda版本与切换

下载cuda版本 进:CUDA Toolkit 12.2 Downloads | NVIDIA Developer wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.runsudo sh ./cuda_12.2.0_535.54.03_linux.run --toolkit --silent --overrid…

快速上手GIT命令,现学也能登堂入室

系列文章目录 手把手教你安装Git,萌新迈向专业的必备一步 GIT命令只会抄却不理解?看完原理才能事半功倍! 快速上手GIT命令,现学也能登堂入室 系列文章目录一、GIT HELP1. 命令文档2. 简要说明 二、配置1. 配置列表2. 增删改查3. …

【具身智能】论文系列解读-RL-ViGen ArrayBot USEEK

1. RL-ViGen:视觉泛化的强化学习基准 RL-ViGen: A Reinforcement Learning Benchmark for Visual Generalization 0 摘要与总结 视觉强化学习(Visual RL)与高维观察相结合,一直面临着分布外泛化的长期挑战。尽管重点关注旨在解…

从C语言到C++_37(特殊类设计和C++类型转换)单例模式

目录 1. 特殊类设计 1.1 不能被拷贝的类 1.2 只能在堆上创建的类 1.3 只能在栈上创建的类 1.4 不能被继承的类 1.5 只能创建一个对象的类(单例模式)(重点) 1.5.1 饿汉模式 1.5.2 懒汉模式 2. 类型转换 2.1 static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 d…

算法笔记——路径问题

在引入介绍如何写一个算法的时候,我们先引入一个题作为例子 1137. 第 N 个泰波那契数 - 力扣(LeetCode) 作为刚开始学习算法的我们,看到这个题目的时候,应该想好以下的问题: 1.状态表示 我们要用什么来表…

关于大模型参数微调的不同方法

Adapter Tuning 适配器模块(Adapter Moudle)可以生成一个紧凑且可扩展的模型;每个任务只需要添加少量可训练参数,并且可以在不重新访问之前任务的情况下添加新任务。原始网络的参数保持不变,实现了高度的参数共享 Pa…

android framework之Applicataion启动流程分析(三)

现在再回顾一下Application的启动流程,总的来说,虽然进程的发起是由ATMS服务发起的,但是进程的启动还是由AMS负责,所以需要调用AMS的startProcess()接口完成进程启动流程,AMS要处理的事情很多,它将事务交给…

代码随想录训练营第四十三天|1049. 最后一块石头的重量 II、 494. 目标和、 474.一和零

1049. 最后一块石头的重量 II 力扣题目链接(opens new window) 题目难度:中等 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x &l…

小程序快速备案助手代备案小程序开发

小程序快速备案助手代备案小程序开发 用户注册与登录:用户可以通过手机号或其他方式进行注册和登录,以便进行备案相关操作。备案信息填写:用户可以填写小程序的备案信息,包括小程序名称、小程序服务类目、域名等。备案材料上传&a…

GA遗传算法

储备知识 GA算法主要解决数学模型中最优化的搜索算法,是进化算法中的一种,基因算法借鉴了自然界基因的遗传的主要现象,分别为遗传,变异,自然选择,杂交等。 GA算法参数 GA算法的参数如下所示。 种群规模…

c++ vs2019 cpp20规范的STL库的map与multimap源码分析

map就是一个红黑树。 标准平衡二叉树,要求左右子树的高度差不超过1 。红黑树只要求左右子树的高度差不超过一倍即可。兼顾了树平衡与效率。避免了AVL树的频繁调整树平衡。 b站 的“可雷曼土”大师,讲红黑树的理论讲的很透彻,再结合看代码&…

va_list使用及两个注意项(可能导致崩溃和少1个字符)

两个注意项: 1、linux平台上vsnprintf会破坏va_list变量,需要重新调用va_start,否则可能访问错位崩溃。 2、vsnprintf会留一个字节补0结束,但返回值不包含,所以必须判断返回值小于分配的空间。 具体代码分析&#xff1…

【包过滤防火墙——firewalld动态防火墙】的简单使用

文章目录 firewald与iptables区别firewalld九个区域firewalld配置方法firewalld参数和命令firewalld两种模式firewalld使用实验 firewalld不要与iptables混用 firewald与iptables区别 iptables 主要是基于接口,来设置规则,从而判断网络的安全性。firewa…

卡特兰数和算法

在组合数学中,卡特兰数是一系列自然数,出现在各种组合计数问题中,通常涉及递归定义的对象。它们以比利时数学家尤金查尔斯卡特兰(Eugne Charles Catalan)的名字命名。 卡特兰数序列是1, 1, 2, 5, 14, 42......&#xf…

AAC之处理码流分析工具(三十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…