【数学建模美赛速成系列】O奖论文绘图复现代码

devtools/2025/1/22 22:52:50/

文章目录

  • 引言
    • 折线图
  • 带误差棒得折线图
  • 单个带误差棒得折线图
  • 立体饼图
  • 完整复现代码

引言

美赛的绘图是非常重要得,这篇文章给大家分享我自己复现2024年美赛O奖优秀论文得代码,基于Matalab来实现,可以直接运行出图。

折线图

在这里插入图片描述

% MATLAB 官方整理
%https://ww2.mathworks.cn/products/matlab/plot-gallery.html?s_tid=srchtitle_gallery_1
% 绘图案例
%% 折线图
%% 图框的基本设置
clc;clear;close all;
load('color_list.mat')load('折线图测试数据.mat')figure('Position',[100,100,600,400])  %整个框大小设置x1=[1:100];
y1=2*x1+10*rand(1,length(x1));
y2=0.01*x1.^2+0.5*x1+10*rand(1,length(x1));color_index=[1,3,4,7,8,9];  %颜色选取fu={'-*','-^','-o','-d','-p'};   %符号% %单根折线图  
% plot(x1,y1,'--','LineWidth',2,'Color',color_list(color_index(1),:))
% hold on      %保持在一个图窗内
% plot(x1,y2,'--','LineWidth',2,'Color',color_list(color_index(2),:))
% hold on color_set=[0.1451    0.6118    0.1451;1.0000    0.4980    0.0549];
% 单根折线图  
plot(x1,y1,'--','LineWidth',2,'Color',color_set(1,:))
hold on      %保持在一个图窗内
plot(x1,y2,'-','LineWidth',1.5,'Color',color_set(2,:))
hold on xlabel('time')
ylabel('value')
title('title')xticks([10:20:100]);
% xticks([10,30,50,70,90]);xticklabels({'1-10','1-20','2-10','2-20','3-10'})%图框全框或者半框的设置
box off
%box on% x轴和y轴的范围设置% xlim([0,100]) 
% ylim([0,100])%直线的设置
xline(30,'--','LineWidth',1.2)
yline(30)%网格的设置
% grid("on")
% set(gca,'XGrid','on',GridLineStyle',':','GridColor','k','GridAlpha',1);% set(gca,'xgrid','on');
% set(gca,'ygrid','on');legend('sybol1','sybol2')
legend('Box','off')set(gca,'FontName','Times New Roman',"FontSize",12,"LineWidth",1.2)

带误差棒得折线图

在这里插入图片描述

%%  带误差棒的折线图
clc;clear;close all;
load('color_list.mat')
color=[0.611764705882353,0.207843137254902,0.560784313725490;0.301960784313725,...0.164705882352941,0.458823529411765;0.556862745098039,0.549019607843137,0.549019607843137];
% index=[1,30,40];
% color=color_list(index,:);
% data_test=[1,2,3;1.1,1.9,2.9;1.2,2.1,3.1];
% dmean=mean(data_test);
% dstd=std(data_test);
% 
% x=[0.1,2.1,3.1]; %x轴数据
% 
% y1=dmean;  %y轴数据
% 
% low1=dstd;  %数据上限
% high1=dstd;  %数据下限
% 
% errorbar(x,y1,low1,high1,'-s','Color',color(1,:),'MarkerSize',10, 'MarkerEdgeColor',color(1,:),'MarkerFaceColor',[1,1,1],...
%     'LineWidth', 2,'CapSize',10)
% hold on
x=[0.1,2.1,3.1,4.1,5.1]; %x轴数据y1=[1.1,0.7,0.75,0.9,0.95];  %y轴数据low1=0.2*rand(1,length(y1));  %数据上限
high1=low1;  %数据下限y2=[1.3,0.32,0.35,0.3,0.25];
low2=0.1*rand(1,length(y2));
high2=low2;y3=[1.5,1.2,1.15,1.6,1.2];
low3=0.3*rand(1,length(y3));
high3=low3;% 画图
%调整整个图的范围
figure('Units', 'pixels', ...'Position', [100 100 600 375]);
%'Color'整个连接线的颜色,'MarkerSize',标记的大小,'MarkerEdgeColor',标记边缘颜色,'MarkerFaceColor',标记填充颜色
%'LineWidth', 线宽,'CapSize',误差图标帽的大小errorbar(x,y1,low1,high1,'-s','Color',color(1,:),'MarkerSize',10, 'MarkerEdgeColor',color(1,:),'MarkerFaceColor',[1,1,1],...'LineWidth', 2,'CapSize',10)
hold onerrorbar(x,y2,low2,high2,'-o','Color',color(2,:),'MarkerSize',8, 'MarkerEdgeColor',color(2,:),'MarkerFaceColor',color(2,:),...'LineWidth', 2,'CapSize',10)
hold on
errorbar(x,y3,low3,high3,'-^','Color',color(3,:),'MarkerSize',8, 'MarkerEdgeColor',color(3,:),'MarkerFaceColor',color(3,:),...'LineWidth', 2,'CapSize',10)
hold on
ylabel('Mechanical Threshold')
% 调坐标的范围
ax = gca;
%x轴范围
ax.XTick = [0.1,2.1,3.1,4.1,5.1];
%x轴标签
ax.XTickLabels ={'Baseline', '0', '4h','24h','48h'};
ax.YTick= [1,2];
%y轴范围
ax.YLim=[0,2];
% 图例
% 不同图例不同颜色标记,'LineWidth',字体粗细,'FontSize',字体大小 ,'Orientation' 图例位置
% legend('第一次实验','第二次','第三次')
legend(['\color[rgb]{',num2str(color(1,:)) ,'}','Control'],['\color[rgb]{',num2str(color(2,:)) ,'}',' CFA'] ,...['\color[rgb]{',num2str(color(3,:)) ,'}','BY'],'LineWidth',2,'FontSize',14,'Location','best');
legend('boxoff') %图例框消失
%设置字体
% set(gca,"FontSize",14,"LineWidth",2)
set(gca,"FontName","Times New Roman","FontSize",14,"LineWidth",2)
title("MY picture","FontName","Times New Roman","FontSize",14,"LineWidth",2);
box off

单个带误差棒得折线图

在这里插入图片描述

%%  单个误差带的折线图data_test=[1,2,3,4,5;1.5,1.8,2.3,3.2,4.5;0.2,2.2,3.1,3.3,4.6];
dmean=mean(data_test);
dstd=std(data_test);x=[0.1,2.1,3.1,4.1,5.1]; %x轴数据y1=dmean;  %y轴数据low1=dmean-dstd;  %数据上限
high1=dmean+dstd;  %数据下限figure('Position',[200,200,600,350])color_set=[1.0000    0.6863    0.3490];plot(x,y1,'-s','Color',color_set(1,:),'LineWidth',1.5)
hold on 
h1=fill([x,fliplr(x)],[low1,fliplr(high1)],'r');hold onh1.FaceColor = color_set(1,:);%定义区间的填充颜色   h1.EdgeColor =[1,1,1];%边界颜色设置为白色alpha (0.3)   %设置透明色scatter(x,data_test,20,'o','filled','MarkerFaceColor',[0.5,0.5,0.5],'MarkerEdgeColor',[0.5,0.5,0.5])
hold onset(gca,'FontName','Times New Roman',"FontSize",12,"LineWidth",1.1)% box off
legend('mean','std','data')xlabel('x')
ylabel('y')
title('title')

立体饼图

在这里插入图片描述

%% 绘制饼图
load('color_cell1.mat')
mycolor1=color_cell1{1,1};
% data=[0.160784313725490   0.615686274509804   0.572549019607843  0.672549019607843  0.872549019607843];
data=[1,2,3,6,7];
figure
pie3(data,ones(1,length(data)))
colormap(mycolor1)
set(gca,'looseInset',[0 0 0 0]); %去除图片的白边%%
figure
labels=["species1 48% ","species2 35% ","species3 17% "];
pie3([48,35,17],labels)
color1_set=[  0.0039    0.4471    0.73730.4706    0.6706    0.18820.8471    0.3255    0.0980];
set(gca,'looseInset',[0 0 0 0]); %去除图片的白边
colormap(color1_set)

完整复现代码

在这里插入图片描述
在这里插入图片描述

另外O奖复现代码还包括:

  • 柱状图
  • 横向柱状图
  • 分组柱状图
  • 堆叠柱状图
  • 三维柱状图
  • 箱线图
  • 热图
  • 矩阵散点图
  • 三维图
  • 双轴图

http://www.ppmy.cn/devtools/152710.html

相关文章

【数据结构篇】顺序表 超详细

目录 一.顺序表的定义 1.顺序表的概念及结构 1.1线性表 2.顺序表的分类 2.1静态顺序表 2.2动态顺序表 二.动态顺序表的实现 1.准备工作和注意事项 2.顺序表的基本接口: 2.0 创建一个顺序表 2.1 顺序表的初始化 2.2 顺序表的销毁 2.3 顺序表的打印 3.顺序…

微服务学习-OpenFeign 简化服务间调用

使用 OpenFeign 简化服务间调用 1. 作用 服务间的远程调用,比如通过 OpenFeign 可以实现订单服务调用远程的库存服务 已经有了 LoadBalancer 为什么还要用 OpenFeign? 在微服务架构中,LoadBalancer 和 OpenFeign 虽然都提供服务间调用的能…

C# 控制打印机:从入门到实践

在开发一些涉及打印功能的应用程序时,使用 C# 控制打印机是一项很实用的技能。这篇文章就来详细介绍下如何在 C# 中实现对打印机的控制。 一、准备工作 安装相关库:在 C# 中操作打印机,我们可以借助System.Drawing.Printing命名空间&#x…

备赛蓝桥杯之第十五届职业院校组省赛第一题:智能停车系统

提示:本篇文章仅仅是作者自己目前在备赛蓝桥杯中,自己学习与刷题的学习笔记,写的不好,欢迎大家批评与建议 由于个别题目代码量与题目量偏大,请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题&#xff0…

IDEA构建JavaWeb项目,并通过Tomcat成功运行

目录 一、Tomcat简介 二、Tomcat安装步骤 1.选择分支下载 2.点击下载zip安装包 3.解压到没有中文、空格和特殊字符的目录下 4.双击bin目录下的startup.bat脚本启动Tomcat 5.浏览器访问Tomcat 6.关闭Tomcat服务器 三、Tomcat目录介绍 四、WEB项目的标准结构 五、WEB…

跨站脚本攻击(XSS)原理及防护方案

跨站脚本攻击(XSS,Cross-Site Scripting)是一种常见的网络安全漏洞,攻击者通过在网页中注入恶意脚本,使其在用户的浏览器中执行。XSS攻击可以窃取用户的敏感信息,如cookies、会话令牌等,甚至可以…

基于STM32单片机火灾安全监测一氧化碳火灾

功能描述 0. STM32单片机为控制核心 1. 液晶显示当前温湿度和CO浓度等信息 2. 温湿度传感器检测当前环境温湿度 3. 火焰传感器检测是否发生明火 4. 一氧化碳传感器检测一氧化碳浓度 5. 功能按键可以设置加减和参数阈值,超过阈值蜂鸣器进行报警 6. 当发…

简述mysql 主从复制原理及其工作过程,配置一主两从并验证

第一种基于binlog的主从同步 首先对主库进行配置: [rootopenEuler-1 ~]# vim /etc/my.cnf 启动服务 [rootopenEuler-1 ~]# systemctl enable --now mysqld 主库的配置 从库的配置 第一个从库 [rootopenEuler-1 ~]# vim /etc/my.cnf [rootopenEuler-1 ~]# sys…