问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

matlab的plot命令作图后另存为jpg文件时y轴标注显示不完整

发布网友 发布时间:2022-05-01 08:09

我来回答

3个回答

热心网友 时间:2022-06-26 13:33

可以用print函数。

matlab对图形图片进行保存的方法:
如今常用的方法有三种printf,imwrite,saveas下面分别介绍一下:
一、imwrite
mwrite将图像数据写成图像文件,一般用于图像处理,当我们使用imshow将一副图像使显示在坐标系上时,我们可以使用如下方式保存图像

I=getimage(gcf); % 获取坐标系中的图像文件数据
imwrite(I,'myphoto.jpg')%保存图像为文件
同时可以使用下面的形式保存图片数据,把图片保存到指定文件夹,并对文件名进行编号
f=getframe(gcf);
imwrite(f.cdata,['C:\Users\shitao\Desktop\s4\',int2str(i),'.jpg']);
这个函数在视频分帧时,我经常使用,相对saveas的保存速度,个人感觉效率比较高,下面举个例子

clc;close all;clear all;

Img=imread('1.jpg');

if ndims(Img)==3

I=rgb2gray(Img);

else

I=Img;

end

I=im2bw(I,graythresh(I));

[m,n]=size(I);

imshow(I);title('binary image');

txt=get(gca,'Title');

set(txt,'fontsize',16);

L=bwlabel(I);

stats=regionprops(L,'all');

set(gcf,'color','w');

set(gca,'units','pixels','Visible','off');

q=get(gca,'position');

q(1)=0;%设置左边距离值为零

q(2)=0;%设置右边距离值为零

set(gca,'position',q);

for i=1:length(stats)

hold on;

rectangle('position',stats(i).BoundingBox,'edgecolor','y','linewidth',2);

temp = stats(i).Centroid;

plot(temp(1),temp(2),'r.');

drawnow;

end

frame=getframe(gcf,[0,0,n,m]);

im=frame2im(frame);

imwrite(im,'a.jpg','jpg');%可以修改保存的格式

二、saveas
Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】

% saveas(figure_handle,filename,fileformat)

plot(1:10);

saveas(gcf,‘myfig.jpg’)

它有三种书写方式
saveas(gcf,['D:\保存的数据文件\方法1.png'])
saveas(gcf,['D:\保存的数据文件\方法2','.png'])
saveas(gcf,['D:\保存的数据文件\','方法3','.png'])
用saveas命令保存图片。
Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】。
saveas的三个参数:
(1)图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3。
(2)文件名。
(3)单引号字符串,指定存储格式。
例:
% saveas(figure_handle,filename,fileformat) plot(1:10);
>>saveas(gcf,['D:\保存的数据文件\方法1.png'])
>> saveas(gcf,['D:\保存的数据文件\方法2','.png'])
>> saveas(gcf,['D:\保存的数据文件\','方法3','.png'])把图片保存到指定目录并编号
saveas(gcf,['C:\Users\shitao\Desktop\s3\',int2str(i),'.jpg']);

mov=aviread('C:\Users\shitao\Desktop\s5\2.avi');%读入视频

Vframes=size(mov,2);%读取视频的帧数

figure

for i=1:Vframes

% strtemp=strcat('C:\Users\shitao\Desktop\s2\',int2str(i),'.','jpg');%将每帧转成.jpg的图片

I=mov(i).cdata;

imshow(I);

%此处添加图像处理内容,如对图像画框,画线等操作

saveas(gcf,['C:\Users\shitao\Desktop\s2\',int2str(i),'.jpg']);

%imwrite(mov(i).cdata(:,:,:),strtemp); %把图像写入磁盘

end

saveas与imwrite的区别

saveas(handle,['目录','文件名'])
如果只有一幅图,handle设为gcf
如果有多副,handle需单独设置
imwrite(image_data,['directory','filename'])
需要与getframe连用
两个命令都可以用来保存图像,区别在于
1、背景色:saveas保存的图像 背景色自动设置为白色,imwrite保存图像为所见即所得
2、图像大小: saveas无视你设置的图像大小,按默认保存,imwrite保存所见即所得

contrast example:在当前目录下image文件夹下找到两个图像,对比一下

clear

clc

x=0:pi/100:2*pi;

y=sin(x);

h=plot(x,y); % h为plot线的句柄handle

set(gcf,'position',[80,100,400,600])

% 将图像设置为距屏幕左下角 [80,像素

% 图像大小设置为400*600像素

set(gcf,'color',[1,1,1]) % 背景色设置为白色

mkdir image

% 在当前文件夹下新建image文件夹,如果已存在会warning,不影响运行

% ========================

saveas(gcf,['image','test1.jpg'])

% ========================

f=getframe(gcf);

imwrite(f.cdata,['image','test2.jpg'])

三、printf
用法:print(图形句柄,存储格式,文件名);

图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.用gcf可以获取当前窗口句柄。
指定存储格式。常用的有:

png格式:‚-dpng‘ (推荐这一种,与bmp格式一样清晰,文件也不大)
jpeg: ‚-djpeg‘(文件小,较清晰)
tiff: ‚-dtiff‘
bmp: ‚-dbitmap‘(清晰,文件极大)
gif: ‚-dgif‘(文件小但不清晰)

例如

<font color="#000000" size="2">% print(figure_handle,fileformat,filename)

x=-pi:2*pi/300:pi;

y=sin(x);

plot(x,y);

%Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对

print(gcf,'-dpng','abc.png') %保存为png格式的图片到当前路径</font>

注意:print函数必须紧跟在plot函数之后使用。

热心网友 时间:2022-06-26 13:34

由于你把y的标签的字符变多,导致ylabel超出左边界.
不过你可以用print函数
print -djpeg -r300 Young.jpg
生成出来的图就没有问题.追问你的这个方法确实管用。还有问题希望给个解释。y的标签的字符变多,导致ylabel超出左边界,什么是“y的标签的字符变多”?ylabel('杨氏模量B(y)')这条命令有什么问题?会使得y的标签字符变多?

热心网友 时间:2022-06-26 13:34

那你就直接用截图工具截图
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“此何与于殷人之屡迁”的出处是哪里 “应须愁杀病维摩”的出处是哪里 “若中音会”的出处是哪里 “若论曹子建”的出处是哪里 “若论常快活”的出处是哪里 “幸有橘丸丸日大”的出处是哪里 服装学校哪里的比较好 选择选择母校生活的几个片段,300字。 选择的重要性的文章(选择的重要性——挑选人生的每个片段) 极品飞车9最高通缉 我家电脑能玩么 配置跟得上么 微信转帐查看交易详情时为什么不显示对方微信名?怎么才能显示? 微信转账怎么查78823191? 英语protect和conserve作为保存区别是什么? 如何将我的宝贝成为淘宝客和淘宝联盟用户 呵呵呵!!谁来告诉我!为什么我的iPhone5S一玩游戏就死机?!Ps:手机行货。 R语言如何把一个plot图的右边加上标签,要求标签字头向外,也就是顺序是从上到下的,如下右侧边框标签? 微信转转账显示金额的左侧有两个相反的箭头说明什么 怎么没有微信转账符号 怎么用迅捷路由器连接别的网络。 迅捷路由器网址 怎么兑现微信转账 微信转账记录有一些看不懂的字母符号 微信没有转账符号怎么用微信支付 微信支付宝可以用什么符号?问号加减等号等可以吗 我不喜欢竞争啊,怎么办? 中国象棋谁是去年个人赛的冠军 怎么没有微信转账符号? 不喜欢竞争是不自信的表现吗 这些象棋特大目前棋力最强的是谁? 男朋友性格温和,不喜欢争斗和竞争怎么办?这样好吗? 我是淘宝卖家 我已经在淘宝联盟设置了我的宝贝佣金 我同时也可以成为一名淘宝客吗? 进入我的淘宝联盟怎么老显示恭喜你 淘宝联盟我不会怎么办 我在用matlab中的plot画图的时候,在设置了xy轴坐标之后,画出来的图上显示的坐标不是完全的,请看图: matlab用plot画出来的曲线图怎么把横坐标变成汉字标识?? 求教为什么我用苹果6玩这游戏会死机 matlab plot 为什么看不到0点的标记,,结果只能看到后面两个点 苹果手机玩游戏有时死机怎么回事 保存文件 英文怎么说 为什么我的淘宝联盟从高级降到了中级? 制造,赢,已保存,停止,这些词在英语中哪个不是同类? ‘点击‘保存’,在方框里为你的家庭作业取个名字,然后再次点击‘保存’”用英语怎么写 咸鸭蛋蛋白发苦? 味精吃多了好吗?? 北京徽峰艺雅装饰有限公司怎么样? 武汉银采天纸业股份有限公司怎么样? 男面痣图凶什么意思 多吃味精有没有好处 味精吃多了对人体有好处吗 关于mssql连接释放的问题