Matlab批量绘制图像并保存
author:ZKe
-------------------------------
以下是一个txt文件,每行11个字段,第一个字段是日期,后面10个是用户id和对应今天发表微博数,所有字段用制表符'\t'分隔

我们要对每一行数据,画一个柱状图,标题是日期,x轴是用户id,纵轴是发表微博数
而且是批量的,写一个Matlab脚本,绘制并保存每个图
1. 首先要处理每一行数据,进行字符串切割,假设str是我们读取的一行数据
parts = strsplit(str, '\t'); % 字符串切割,返回元胞数组
name = parts(1); % 第一个字段是日期
data = zeros(1,10);
labels = cell(1,10); % 横坐标标记
subParts = cell(1,2);
for i=1:length(parts)-1
subParts = strsplit(parts{i+1}, ':'); % 对每一个id-count字段再切割
data(i) = str2double(subParts{2}); % 字符串转换为数值
labels{i} = subParts{1}; % {}访问元胞数组,和原类型一样是字符串
end
2. 然后通过所得数据绘制图形
fg = figure() % fg是可以保存的绘图句柄
axes1 = axes('Parent',fg); % 通过axes修改横坐标标记
bar(data, 'FaceColor',[0.73 0.83 0.96])
% 为柱状图添加数值标记
for i=1:10
text(i-0.1, data(i)+1.2, num2str(data(i)));
end
set(axes1,'XTickLabel',labels); % 横坐标标记修改为用户ID
xlabel('用户ID')
ylabel('今日发微博数')
% 年月日字符串作为标题
datePart = strsplit(name{1},'/');
dateStr = strcat(datePart{1},'年',datePart{2},'月',datePart{3},'日')
titleName = strcat(dateStr, ' 的发微博数Top10');
title(titleName)
3. 保存图像
saveas(fg, strcat('发微博数Top10/',titleName, '.jpg'));
close(fg) % 当前图像绘制完之后关闭当前图像,否则下一个循环再打开一个画布,批量很多张的话屏幕可能会崩
一张就是绘制一张图像的过程,要批量进行就要按行读取文件
在以上代码的上下添加如下代码即可:
str = '';
fid = fopen('srcdata.txt'); % 打开一个文件
index = 0;
while ~feof(fid)
str = fgetl(fid); % 逐行读取 % 上述代码 end
效果如下!堪称Perfect!^_^ ~
不过这样其实还有一个缺陷,我忘记统一纵坐标范围了,可以用ylim()函数固定坐标范围,这样所有图像放一起就能比较差异了

Matlab批量绘制图像并保存的更多相关文章
- 使用matlab批量处理图像后在指定文件夹存储
使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jp ...
- MATLAB批量存储图像和显示算法处理的图像不留空白
一 前言 最近收到审稿人的修改意见,其中一条为<RC: There were only five images evaluated in the experiment, and I recomm ...
- MATLAB(4)——图片保存方法汇总及常用指令
作者:桂. 时间:2017-03-03 19:30:03 链接:http://www.cnblogs.com/xingshansi/p/6498318.html 前言 本文为MATLAB系列第四篇. ...
- MATLAB批量打印输出600PPI的图像且图像不留空白
一 前言 最近收到审稿人的修改意见,其中有三条:一条为<RC: There were only five images evaluated in the experiment, and I re ...
- MATLAB中绘制质点轨迹动图并保存成GIF
工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...
- [转帖]MATLAB曲线绘制及颜色类型
信号源产生的方法 来源:http://www.2cto.com/kf/201401/270494.html matlab的checkerboard说明,GOOD! 来源:http://www.chi ...
- MATLAB曲线绘制
一. 二维数据曲线图1.1 绘制 单根二维曲线plot 函数的基本调用 格式为:plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标 和y坐标数据. 例1-1 在0≤x≤2p区间内,绘制 ...
- iOS:quartz2D绘图(处理图像,绘制图像并添加水印)
绘制图像既可以重写drawRect:方法并在该方法中绘制,也可以不用重写该方法,它有封装好的函数获取自己的图像绘制上下文,即UIGraphicsBeginImageContext(CGSize siz ...
- Matlab图形绘制
图形绘制 离散函数图形: 例:离散数据和离散函数可视化(离散数据作图方式) X1=[,,,,,,,,,,,,,,,,,,,]; Y1=[,,,,,,,,,,,,,,,,,,,]; figure() p ...
随机推荐
- ANNdotNET中的视觉神经网络设计器
ANNdotNET简介 是一个在.net平台上进行深度学习的开源项目.NET Framework和.NET Core).该项目位于http://github.com/bhrnjica/anndotne ...
- 第2天 | 12天搞定Python,运行环境(超详细步骤)
倘若有人告诉你,他在学习Python编程,却没有安装运行环境,那你赶紧叫他滚,并离他远点,因为他在欺骗你的感情. 没有安装运行环境,程序根本无法跑起来,对错不能知根知底,试问是在学编程,还是在跟空气对 ...
- 54.Qt-将界面程序封装成动态库DLL
1.生成dll 然后选择创建共享库: 创建好后,修改pro文件,改为下面两句(这样就可以创建界面了): 然后修改sharedlib.h: #ifndef SHAREDLIB_H #define SH ...
- 面经手册 · 第13篇《除了JDK、CGLIB,还有3种类代理方式?面试又卡住!》
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 编程学习,先铺宽度还是挖深度? 其实技术宽度与技术深度是相辅相成的,你能了解多少技术 ...
- 动画演示Sunday字符串匹配算法——比KMP算法快七倍!极易理解!
前言 上一篇我用动画的方式向大家详细说明了KMP算法(没看过的同学可以回去看看). 这次我依旧采用动画的方式向大家介绍另一个你用一次就会爱上的字符串匹配算法:Sunday算法,希望能收获你的点赞关注收 ...
- Celery---一个懂得异步任务,延时任务,周期任务的芹菜
Celery是什么? celey是芹菜 celery是基于Python实现的模块,用于执行异步延时周期任务的 其结构组成是由 1.用户任务 app 2.管道任务broker用于存储任务 官方推荐red ...
- day18 Pyhton学习 匿名函数
匿名函数 别称: lambda表达式 函数,没有名字 def wahaha(n):#wahaha return n**2 print(wahaha.__name__) qqxing = lambda ...
- 程序3-6 WERTYU
把手放在键盘上时,稍不注意就会往右错一 位.这样,输入Q会变成输入W,输入J会变成输 入K等.键盘如图3-2所示. 输入一个错位后敲出的字符串(所有字母均 大写),输出打字员本来想打出的句子.输入保 ...
- docker-搭建 kafka+zookeeper集群
拉取容器 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka 这里演示使 ...
- fastdfs之同一台storage server下包含多个store path
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...