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批量绘制图像并保存的更多相关文章

  1. 使用matlab批量处理图像后在指定文件夹存储

    使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jp ...

  2. MATLAB批量存储图像和显示算法处理的图像不留空白

    一 前言 最近收到审稿人的修改意见,其中一条为<RC: There were only five images evaluated in the experiment, and I recomm ...

  3. MATLAB(4)——图片保存方法汇总及常用指令

    作者:桂. 时间:2017-03-03  19:30:03 链接:http://www.cnblogs.com/xingshansi/p/6498318.html 前言 本文为MATLAB系列第四篇. ...

  4. MATLAB批量打印输出600PPI的图像且图像不留空白

    一 前言 最近收到审稿人的修改意见,其中有三条:一条为<RC: There were only five images evaluated in the experiment, and I re ...

  5. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  6. [转帖]MATLAB曲线绘制及颜色类型

    信号源产生的方法 来源:http://www.2cto.com/kf/201401/270494.html  matlab的checkerboard说明,GOOD! 来源:http://www.chi ...

  7. MATLAB曲线绘制

    一. 二维数据曲线图1.1 绘制 单根二维曲线plot 函数的基本调用 格式为:plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标 和y坐标数据. 例1-1 在0≤x≤2p区间内,绘制 ...

  8. iOS:quartz2D绘图(处理图像,绘制图像并添加水印)

    绘制图像既可以重写drawRect:方法并在该方法中绘制,也可以不用重写该方法,它有封装好的函数获取自己的图像绘制上下文,即UIGraphicsBeginImageContext(CGSize siz ...

  9. Matlab图形绘制

    图形绘制 离散函数图形: 例:离散数据和离散函数可视化(离散数据作图方式) X1=[,,,,,,,,,,,,,,,,,,,]; Y1=[,,,,,,,,,,,,,,,,,,,]; figure() p ...

随机推荐

  1. 071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法

    071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法 本文知识点:综合案例-数组移位-显示数组当中所有元素 ...

  2. 054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述

    054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述 本文知识点:数组概述 为什么要学习数组? 实际问题: 比如我们要对学生的成绩进行排序,一个班级 ...

  3. Java知识系统回顾整理01基础05控制流程05 continue

    continue:继续下一次循环 一.continue 题目: 如果是双数,后面的代码不执行,直接进行下一次循环 要求效果: 答案: public class HelloWorld { public ...

  4. springCloud项目搭建

    新建父maven项目 groupId:pers.xzp.springCloudartifactId:springCloud 父项目中仅仅需要一个pom文件,用于管理模块的依赖统一.继承等 编辑pom文 ...

  5. Linux Centos7 安装Docker-CE

    先确保yum 是最新版本 执行: sudo yum update 添加docker源地址 sudo yum-config-manager --add-repo https://download.doc ...

  6. php闭包作为函数参数

    <?php function test(Closure $call) { $a = 63; $b = 22; echo "hello"; echo $call($a,$b); ...

  7. spring boot:用zxing生成二维码,支持logo(spring boot 2.3.2)

    一,zxing是什么? 1,zxing的用途 如果我们做二维码的生成和扫描,通常会用到zxing这个库, ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库. zxing还可以 ...

  8. Eclipse JSP +Tomcat 环境搭建 错误记录

    环境搭建请参考原文:https://www.cnblogs.com/james-lee/p/5964238.html 错误1:运行时,弹出如下错误:(如果没有此错误,请忽略) 原因是,我们之前点击了T ...

  9. 全文检索Solr集成HanLP中文分词【转】

    以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在 ...

  10. 【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))

    问题情形 当应用在Azure 应用服务App Service中运行时,有时候出现CPU,Memory很高,但是没有明显的5XX错误和异常日志,有时就是有异常但是也不能明确的指出具体的代码错误.当面临这 ...