基于MATLAB appdesigner把多个折线图放在一张图里的笔记,MATLAB AppDesigner实现多折线图合一的图表笔记

马肤

温馨提示:这篇文章已超过425天没有更新,请注意相关的内容是否还可用!

摘要:利用MATLAB的appdesigner工具,可以方便地实现多个折线图在同一张图表中的展示。通过创建图表组件并设置其属性,可以自定义坐标轴、图例、标题等元素。通过导入或编程创建数据,可以在同一个图表中绘制多条折线,展示不同数据集的变化趋势。此功能在数据可视化、工程分析和科研领域具有广泛应用。

经过修正错别字、修饰语句以及补充内容,文章如下:

如果HTML模块覆盖在按钮之上,那么即使按钮在运行时可见,也可能无法点击。

界面展示如下:

基于MATLAB appdesigner把多个折线图放在一张图里的笔记,MATLAB AppDesigner实现多折线图合一的图表笔记 第1张

对于“开始填入数据按钮”的回调功能如下:

首先获取列数和行数:

```python

lie = app.EditField_lie.Value # 列数

hang = app.EditField_hang.Value # 行数

```

接着获取原有数据,并初始化一个零矩阵:

```python

b = app.UITable.Data # 获取原有数据

a = zeros(hang, lie) # 创建一个指定大小的零矩阵

```

然后根据原有数据的大小进行数据处理:

```python

[row, col] = size(b) # 获取原有数据的行列数

if row == 0 and col == 0: # 如果原来表格里没有数据

app.UITable.Data = a # 直接设置新数据为初始化的零矩阵

else:

# 以下是为了适应新输入的二维数组的大小又不损失之前输入的结果

for i in range(1, min(row, hang) + 1):

for j in range(1, min(col, lie) + 1):

a[i, j] = b[i, j] # 将原有数据复制到新矩阵中

app.UITable.Data = a # 设置新数据为处理后的矩阵

```

对于“画在同一个图里”按钮的回调,首先获取表格数据和dropdown的选择值,然后绘制折线图,这里可以不在app给出的坐标区画图,由于MATLAB添加图例很方便,可以等到画出图后再标注图例,具体代码如下:

```python

data = app.UITable.Data # 获取表格数据

[numRows, numCols] = size(data) # 获取数据的大小

value = app.DropDown.Value # 获取dropdown的选择值

% 绘制折线图

figure() # 创建一个新的坐标区

hold on # 保持当前坐标区,以便在同一个图上绘制多条线

% 循环遍历 y 列并绘制折线图,根据dropdown的选择值设置点的标记

if value == 'x':

for i in range(2, numCols + 1): # 从第二列开始循环,因为第一列是x轴的数据

plot(data[:, 0], data[:, i], '-x') # 绘制带有'x'标记的折线图

elif value == 'o': # 如果选择的是空心圆标记的实线,则进行如下操作

for i in range(2, numCols + 1): # 从第二列开始循环,因为第一列是x轴的数据

plot(data[:, 0], data[:, i], '-o') # '-o' 表示带空心圆标记的实线,绘制折线图,注意这里有一个小问题,MATLAB中应该是使用'-'表示实线,而不是'-o',因为'-o'表示的是带有圆圈的线,所以这里应该改为plot(data[:, 0], data[:, i], '-'),然后如果需要空心圆标记的话再单独设置标记样式,具体代码可能需要调整,请根据实际情况进行修改。 plot函数的具体用法可以参考MATLAB官方文档,对于置零的回调功能,只需要将表格数据设置为指定大小的零矩阵即可。

这里仅仅是折线图,如果想要获得平滑曲线,需要在两个点之间进行加密再plot,具体的加密和平滑处理需要依据具体的数据和需求进行实现。

0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码