最近做视频的时候,需要加上疫情数据变化曲线,动态的曲线变化更能体现抗击疫情的艰辛过程,所以利用 MATLAB做了个动态曲线。
数据因为较短,所以是自己手动录入的。
因为准备加到视频中使用,所以动态曲线输出格式选择的是AVI格式。使用的函数为:writeVideo
使用格式如下:
aviobj=VideoWriter('example.avi');%新建叫example.avi的文件
aviobj.FrameRate = 1; % frame rate 帧率
open(aviobj); % 打开对象
for i=1:N % 生成每帧图像 一共N帧
currFrame = getframe; % 获取当前帧
writeVideo(aviobj,currFrame); % 保存当前帧
end
close(aviobj); % 关闭保存视频
同时为了使横纵坐标消去,并调整图像横纵比使用如下操作:
set(gca,'xtick',[]) % 消除横坐标刻度
set(gca,'color','none'); % 消除坐标颜色
set(gca,'DataAspectRatio',[1,10,1]) % 控制横纵比
为了消去matlab画图背景颜色,采用如下操作:
set(gcf,'color','none'); % 消除图形颜色
set(gcf,'InvertHardCopy','off'); % 背景透明
?
完整代码如下:?
figure()
aviobj=VideoWriter('example.avi');%新建叫example.avi的文件
aviobj.FrameRate = 1; % frame rate 帧率
open(aviobj); % 打开对象
for i=1:N % 生成每帧图像 一共N帧
plot(1:i,num(1:i),'b','LineWidth',2);pause(0.5);
axis([1,41,0,180])
set(gca,'xtick',[]) % 消除横坐标刻度
set(gca,'color','none'); % 消除坐标颜色
set(gca,'DataAspectRatio',[1,10,1]) % 控制横纵比
set(gcf,'color','none'); % 消除图形颜色
set(gcf,'InvertHardCopy','off'); % 背景透明
hold on
currFrame = getframe; % 获取当前帧
writeVideo(aviobj,currFrame); % 保存当前帧
end
close(aviobj); % 关闭保存视频
视频下方就是哦?
|