(助力国赛)美赛O奖数学建模可视化!!!含代码3(误差限图、冰柱图、树图)

news2024/9/20 2:49:39

  众所周知,数学建模的过程中,将复杂的数据和模型结果通过可视化图形呈现出来,不仅能够帮助我们更深入地理解问题,还能够有效地向评委展示我们的研究成果
  今天,承接《可视化代码2》,作者将与大家分享《可视化代码3》,此篇结束就完结撒花啦!!!内含3种强大的数学建模可视化图形及其在实际问题中的应用,包含以下图形:“回归误差线”、“冰柱图”、“树图”

  如果阅者喜欢此篇分享,认为内容精要、有用、好懂的话,请点赞收藏再走!!!(此为第三部分更新,是可视化模块的最后一部分更新)

1 误差限图:精确探索,用误差限映射数据的信心边界!

  误差限图是在数据点上添加垂直线段来表示数据的变异性或不确定性,常用于展示每个数据点的误差范围或置信区间。这种图形有助于了解数据的可靠性,常见于科学实验和技术测量,使观察者能够一眼看出数据的稳定性和可信度。

import plotly.graph_objects as go
import numpy as np


def line_with_error(fig, x: list, y: list, lower: list,
                    upper: list, colors: list, name=None):
    """
    绘制一条折线,并且填充误差限
    :param fig: Figure实例
    :param x: x坐标
    :param y: 纵轴值
    :param lower: 误差下限
    :param upper: 误差上限
    :param colors: 颜色,包括两个值:[折线颜色, 填充颜色]
    :param name: 折线名称
    """
    fig.add_trace(go.Scatter(
        x=x, y=y, line={'color': colors[0]}, name=name
    ))
    fig.add_trace(go.Scatter(
        x=x + x[::-1], y=upper + lower[::-1], fill='toself', fillcolor=colors[1],
        line={'color': 'rgba(255, 255, 255, 0)'}, showlegend=False, name=name
    ))


if __name__ == '__main__':
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    # Line 1
    y1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    y1_upper = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    y1_lower = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    # Line 2
    y2 = [5, 2.5, 5, 7.5, 5, 2.5, 7.5, 4.5, 5.5, 5]
    y2_upper = [5.5, 3, 5.5, 8, 6, 3, 8, 5, 6, 5.5]
    y2_lower = [4.5, 2, 4.4, 7, 4, 2, 7, 4, 5, 4.75]

    # Line 3
    y3 = [10, 8, 6, 4, 2, 0, 2, 4, 2, 0]
    y3_upper = [11, 9, 7, 5, 3, 1, 3, 5, 3, 1]
    y3_lower = [9, 7, 5, 3, 1, -.5, 1, 3, 1, -1]

    fig = go.Figure()
    fig.update_layout(
        xaxis=dict(
            showgrid=True,
            gridcolor='rgb(188,199,199)',
            linecolor='rgb(0,0,0)',
            position=0,
        ),
        yaxis=dict(
            showgrid=True,
            gridcolor='rgb(188,199,199)',
            linecolor='rgb(0,0,0)',
            position=0,
        ),
        plot_bgcolor='white',  # 设置背景颜色为白色
    )
    line_with_error(fig, x, y1, y1_lower, y1_upper,
                    ['rgb(0,100,80)', 'rgba(0,100,80,0.2)'], 'Fair')
    line_with_error(fig, x, y2, y2_lower, y2_upper,
                    ['rgb(0,176,246)', 'rgba(0,176,246,0.2)'], 'Premium')
    line_with_error(fig, x, y3, y3_lower, y3_upper,
                    ['rgb(231,107,243)', 'rgba(231,107,243,0.2)'], 'Ideal')

    fig.update_traces(mode='lines')
    fig.write_image('1.png')

  绘制误差限图如下图1所示:
请添加图片描述

图1 误差限图

2 冰柱图 :简洁明了,以冰棒的形式展现数据的大小关系!

  冰柱图基本上是条形图与散点图的结合,它通过在每个类别的结束点上放置一个“棒棒糖”来显示数值。这种图形设计简单,可视化效果强,非常适合比较类别之间的差异以及突出显示特定数据点。

#绘制冰柱图的代码如下:
import plotly.io as pio
import plotly.graph_objs as go
import plotly.express as px
from plotly.subplots import make_subplots
import pandas as pd
import numpy as np

# can be `plotly`, `plotly_white`, `plotly_dark`, `ggplot2`, `seaborn`, `simple_white`, `none`
pio.templates.default = 'plotly_white'

# 加载数据
df = px.data.gapminder().query("year == 2007")
print(df)

fig = px.icicle(df, path=[px.Constant('world'), 'continent', 'country'], values='pop',
                 color='lifeExp', hover_data=['iso_alpha'],
                 color_continuous_scale=px.colors.diverging.Tealrose,
                 color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))

fig.write_html('test.html')

  绘制带有数据点的箱型图如下图2所示:
请添加图片描述

图2 冰柱图

3 局部放大图: 紧凑展示,用不同大小的矩形揭示数据的层级和比例!

  树图是一种矩形堆砌的图形,用于显示“部分-整体”关系,将整体分解为不同的矩形块,每个块的大小与其数据大小成比例。这种图形适用于展示多层次数据结构,其中每个矩形的大小和颜色可以表示数据的不同维度,如大小、比例或增长率,使其成为一种展示复杂数据集合的有效工具

#树图的代码
import plotly.io as pio
import plotly.graph_objs as go
import plotly.express as px
from plotly.subplots import make_subplots
import pandas as pd
import numpy as np

# can be `plotly`, `plotly_white`, `plotly_dark`, `ggplot2`, `seaborn`, `simple_white`, `none`
pio.templates.default = 'plotly_white'

# 加载数据
df = px.data.gapminder().query("year == 2007")
print(df)

fig = px.treemap(df, path=[px.Constant('world'), 'continent', 'country'], values='pop',
                 color='lifeExp', hover_data=['iso_alpha'],
                 color_continuous_scale=px.colors.diverging.Tealrose,
                 color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))

fig.write_html('test.html')

  绘制树图如下图3所示:
在这里插入图片描述

图3 树图

结语

  通过上述3种可视化图形,我们可以更加生动地展示数学建模的结果。你最喜欢哪一种图形?或者你有其他独特的可视化技巧吗?欢迎在评论区分享你的想法和代码,让我们一起探索数学建模的无限魅力! 喜欢请多多关注!!!(可视化完结啦,喜欢的话请翻阅之前文章,还有很多有意思的等待着你哦)


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

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

相关文章

我用ADAU1467加5个ADAU1772,做20进10出的音频处理板(一):硬件设计思路和原理图

作者的话 ADAU1467是现阶段ADI支持最多通道的ADAU音频DSP,他配合外部的AD/DA,可以实现最多32路音频通道,接了一个小项目,我拿它做了一块20进10出的板,10个MIC/LINE输入,10个LINE IN输入,10个HPOUT&#xf…

Redis(二) 单线程架构

redis 的单线程架构 我们都知道 redis 作为缓存,读取速度是非常快的,但是大家知道 redis 的线程架构是怎样的呢?也就是说,redis 是多线程架构还是单线程架构呢? 我们通过一个例子来了解: 首先在 redis 服…

基于Web的宠物医院信息管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本宠物医院信息管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…

【C++】explicit关键字详解(explicit关键字是什么? 为什么需要explicit关键字? 如何使用explicit 关键字)

目录 一、前言 二、explicit关键字是什么? 三、构造函数还具有类型转换的作用 🍎单参构造函数 ✨引出 explicit 关键字 🍍多参构造函数 ✨为什么需要explicit关键字? ✨怎么使用explicit关键字? 四、总结 五…

MariaDB InnoDB 空洞清理

1、背景 数据库占用服务器内存越来越高,除了bin-log文件之外,还发现了一些带有text或者longtext数据类型字段的表,这种表也会占用很高的服务器磁盘空间 数据库版本: 表引擎: InnoDB 数据量:清理之前1500万…

python安装的详细步骤

下载 1.打开Python官网.我们建议工具类的测试软件还是官网下载比较靠谱. https://www.python.org/getit/ 2.在下图界面中选择需要的方式进行点击 3.直接点击下载.可以进入保存界面,进行保存即可下载,后续安装 4.鼠标放在Downloads显示平台和版本选择界面,点击Windows,进入wi…

【备战算法岗】—— 控制模块复习(持续更新!!!)

1 控制理论基础 1.1 控制模块概述 输入:轨迹线Reference、地图信息、定位信息、车辆反馈信息 输出:刹车、油门、转向 CANBUS:车辆底盘交互协议 参考博客:Apollo CANBUS模块解析 apollo:canbus模块(1&…

【超萌二次元动漫个人主页HTML源码】

效果图 部分代码 index.htnl <!DOCTYPE HTML> <html> <head> <title>个人主页介绍页</title> <meta name"keywords" content"孤客个人主页介绍页"> <meta name"description" content"孤客个…

曲线救国|基于函数计算FC3.0部署AI数字绘画stable-diffusion

曲线救国|基于函数计算FC3.0部署AI数字绘画stable-diffusion 基于函数计算FC2.0部署AI数字绘画stable-diffusion基于函数计算FC3.0部署AI数字绘画stable-diffusion总结 在经过了上一次曲线救国失败经历之后&#xff0c;失败经历参考博文&#xff1a;https://developer.aliyun.c…

PF滤波?

粒子滤波 本文是对于原文的学习与部分的转载 https://blog.csdn.net/weixin_44044161/article/details/125445579 粒子滤波是在目标跟踪中常用的一种方法 非线性条件下&#xff0c;贝叶斯滤波面临一个重要的问题是状态分布的表达与积分式的求解 由前面章节中的分析可以得知…

Jupyter的下载与安装

1.下载&#xff1a; 在anaconda的指定环境中 conda install nb_conda_kernels 2.打开 在anaconda指定环境中使用命令&#xff1a; jupyter notebook 3.输入指令后&#xff0c;会显示如下&#xff0c;根据显示地址打开 3. 在右边的new按钮处&#xff0c;选择相应环境&…

C++参考手册使用说明

C参考手册使用说明 文章目录 C参考手册使用说明1 为什么要使用C参考手册2 网站3 C参考手册离线格式4 C参考手册使用说明1.1 离线C参考手册下载1.2 html离线C参考手册1.3 chm离线C参考手册1.4 linux安装包C参考手册&#xff08;只有英文版本&#xff09;1.5 qch离线C参考手册 更…

oracle操作系统OS认证和密码文件认证

1 说明 1.1 常见认证方式 Oracle登录认证方式主要涉及到如何验证用户身份以访问数据库。Oracle数据库提供了多种认证机制来确保数据的安全性和访问控制&#xff0c;每种方式都有其特定的使用场景和安全性考虑。以下是Oracle中常见的登录认证方式&#xff1a; 1、基于操作系统…

【从浅学到熟知Linux】基础IO第一弹=>C语言文件操作接口、文件系统调用、文件描述符概念及分配规则

&#x1f3e0;关于专栏&#xff1a;Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。 &#x1f3af;每天努力一点点&#xff0c;技术变化看得见 文章目录 C语言文件接口回顾系统文件概念与接口文件基本概念系统接口openreadwritecloselseek 什么是当前路径 文件描…

CTFHUB RCE作业

题目地址&#xff1a;CTFHub 完成情况如图&#xff1a; 知识点&#xff1a; preg_match_all 函数 正则匹配函数 int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags PREG_PATTERN_ORDER [, int $offset 0 ]]] )搜索 subject 中…

Navicat Premium 16最新版激活 mac/win

Navicat Premium 16 for Mac是一款专业的多连接数据库管理工具。它支持连接多种类型的数据库&#xff0c;包括MySQL、MongoDB、Oracle、SQLite、SQL Server、PostgreSQL等&#xff0c;可以同时连接多种数据库&#xff0c;帮助用户轻松地管理和迁移数据。 Navicat Premium 16 fo…

如何在在wordpress安装百度统计

前言 看过我的往期文章的都知道&#xff0c;我又建了一个网站&#xff0c;这次是来真的了。于是&#xff0c;最近在查阅资料时发现&#xff0c;有一款免费的软件可以帮我吗分析网站数据。&#xff08;虽然我的破烂网站压根没人访问&#xff0c;但是能装上的都得上&#xff0c;…

【离散数学】关系

一、序偶和笛卡尔积 序偶&#xff1a;两个元素按照一定的次序组成的二元组&#xff0c;记为<x,y>&#xff0c;x为第一元素&#xff0c;y为第二元素 序偶的相等条件&#xff1a;<a,b><c,d>当且仅当ac,bd n重有序组&#xff1a;n个元素按照一定次序组成的n元…

CSS——前端笔记

CSS 1、选择器1.1、基础选择器1.2、复合选择器1.2.4、伪类选择器 1.3、属性选择器1.4、结构伪类选择器1.5、伪元素选择器 2、CSS的元素显示模式2.1、块元素2.2、行内元素2.3、行内块元素2.4、元素显示模式转换 3、字体属性3.1、font-family 字体3.2、font-size 字体大小3.3、fo…

Python 数据结构和算法实用指南(四)

原文&#xff1a;zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十二章&#xff1a;字符串算法和技术 根据所解决的问题&#xff0c;有许多流行的字符串处理算法。然而&#xff0c;最重要、最流行和最有…