精华内容
下载资源
问答
  • 如何保存Matlab绘制出来的图像

    千次阅读 2013-02-04 19:25:46
    1、我们使用Matlab绘制出数据的各种图形需要保存的时候,不少同学是直接用屏幕截图的办法来做的,但这样出来的图并不清晰,不便于后续应用和处理,并且往往不符合发表论文的要求,很多论文是要求用 .eps 格式的图片...

    1、我们使用Matlab绘制出数据的各种图形需要保存的时候,不少同学是直接用屏幕截图的办法来做的,但这样出来的图并不清晰,不便于后续应用和处理,并且往往不符合发表论文的要求,很多论文是要求用 .eps 格式的图片的。实际上,我们可以有下面两种更好的处理方法:

    (1)在论文里插入图片

    在Matlab的Figure窗口,点击菜单栏的Edit,选择Copy Figure,然后转到你的文档界面,把光标放到需要插入图片的位置,然后Ctrl+C,你就可以得到比较清晰的图片了。

    需要注意的是,这时候的图片有相当一部分空白区域,你可以用word图片工具栏的‘裁剪’功能把图片空白区域消除掉。

    另外,如果需要对图片的大小进行拉伸,最好不要直接用鼠标拖拉,这样容易导致图中的点线分布变形,可以右键点击图片,选择‘设置图片格式’,在‘大小’标签的‘缩放’栏里,设置图片的大小。

    (2)直接保存 Figure

    为了便于后续处理和应用,建议大家形成一个良好习惯,即把绘制所得的Figure窗口直接保存为.fig文件,以后你就可以多次打开它,对图像进行修改处理,例如加注标签(label)等,也可以打开.fig文件把所显示的图像转存为其它格式的文件,例如.eps、.jpg等。



    Matlab提供了丰富的绘图函数,比如ez**系类的简易绘图函数,surf、mesh系类的数值绘图函数等几十个。

    有网友向我反映,有时我们只有一个Matlab图像的fig文件,但没有该图像的相关坐标数据,那我们如何获取fig图像的数据呢,这个其实比较好办

    1、将那个fig文件保存到Matlab的搜索路径下,双击打开它
    2、在Matlab的command中输入如下内容 
    h=get(gcf,'chidren')
    data=get(h,{'xdata','ydata','zdat a'})
    %此时图形中所有图像的三维数据x,y,z将会以结构体的形式保存到data变量中了

    今天我只是讨论下如何保存这些由Matlab绘制出来的图像呢?当然借助第三方截图软件,就算了!
    1、直接另存为
    在figure中使用菜单file——>saveas——>选择保存形式(fig,eps,jpeg,gif,png,bmp等),这个的缺点是另存为的图像清晰度有很大的牺牲
    2、复制到剪贴板
    在figure中使用菜单edit——>copy figure——>此时图像就复制到剪贴板了,我们可以借助其他软件(比如:绘图板)保存为需要的图片
    3、saveas命令格式
    Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】 
    % saveas(figure_handle,filename,fileformat)
    plot(1:10);
    saveas(gcf,‘myfig.jpg’)
    复制代码
    4、print函数
    print函数原本不是用来进行图像保存了,而是操作打印机的,但是这里我们可以借用下 
    % print(figure_handle,fileformat,filename)
    x=-pi:2*pi/300:pi;
    y=sin(x);
    plot(x,y);
    %Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对
    print(gcf,'-dpng','abc.png')   %保存为png格式的图片到当前路径

    展开全文
  •   Matlab如何保存运行出来的结果图片,比如动图,望解答

      Matlab如何保存运行出来的结果图片,比如下面的驻波图,望解答

    clear all
    v=1;
    A1=-1;A2=1;
    x=0:0.01:4;
    t=0:0.01:10;
    for i=1:length(t)-1
    y1=A1*sin(pi*(x-v*t(i)));
    y2=A2*sin(pi*(x+v*t(i)));
    y=y1+y2;
    plot(x,y,'r'),axis([-1,5,-2.2,2.2]);
    grid on;
    xlabel('驻波');
    pause(0.01);
    end
    z=length(t)-1;             %t的长度
    clear all
    z  =0: 0.01:6;
    y1 = 0;
    plot(z,y1,'b');
    hold on;
    y2 = 10*sin(2*pi*z)*sin(pi/4);
    plot(z,y2,'-b');
    hold on;
    y3 = 10*sin(2*pi*z)*sin(pi/2);
    hold on;
    y4 = 10*sin(2*pi*z)*sin(5*pi/4);
    plot(z,y4,'o');
    hold on;
    y5= 10*sin(2*pi*z)*sin(3*pi/2);
    plot(z,y5,';r');
    hold on;
    grid on;
    xlabel('时间');
    ylabel('幅度');
    tltle('驻波');
    
    
    展开全文
  • 如何美化MATLAB和Python画出来的图 写在前面 俗话有句叫做:字不如表,表不如图,意思就是图可以最直观最显然的表达我们想要表达的信息,其升降趋势一目了然;表其次,能够看到数值,但是想要看出变化趋势却很困难...

    如何美化MATLAB和Python画出来的图

    写在前面

    俗话有句叫做:字不如表,表不如图,意思就是图可以最直观最显然的表达我们想要表达的信息,其升降趋势一目了然;表其次,能够看到数值,但是想要看出变化趋势却很困难(完全不可能看出一个复杂的周期性变化);最次的是文字表达,可以用文字来表达其趋势、周期、大小范围,但是终究没有具体的数值与更显然、更直观的图来的好。

    话虽如此,在作图方面,一个好看的图能够吸引读者的目光,甚至叹之妙绝——“明明一样的数据,我怎么做不出来这么好看的图”;一个难看简陋的图搁谁都不想看第二眼,更何况从中分析出什么数据了。

    所以我这里想要给大家分享的就是在做数模的几年里,以及近期在实验室搬砖并阅读大量文献后的,一些对作图上的想法。

    为了照顾到采用不同的可视化软件的人,这篇文章将分成两个部分,一个是MATLAB,另一个是Python。这两个部分的差别仅在于调用函数、代码指令的细微差别,比如说调整坐标轴粗细,MATLAB用set(gca, ‘linewidth’, 1.1)而Python却用ax.spines[‘bottom’].set_linewidth(2)这样的差别。

    具体我们画好以后的图,就以这个图作为参考。

    例子

    如何画好一个图?

    反面教材

    我们首先来看两个反面教材,这两个反面教材是我随便搜“MATLAB作图”后找到的博客或PPT上面截下来的,可以理解他们本意是仅仅教授怎么做图,并不负责怎么做好看。但是其不认真的态度还是让我来做反面教材了,因为他们竟然是“直接截图!不是保存图像!把MATLAB的大灰边截下来了!!

    反面教材1

    首先对于反面教材1,夸张的线宽、耀眼的蓝色线条绿色底色,明显的夕阳红配色。

    反面教材2

    然后反面教材2,加个网格说明别出心裁,但是字体很难看,并且截图就截图吧露个大灰边,还没把截全。

    如何避免出现以上这种情况?

    最主要的一步:

    **不要截图!!**请点左上角“Save/保存”!!这样子出来的图就是白色底了,而不是预览的灰色底。

    其次,我们在作图是一定要严格按照以下几点来规范自身:

    1. 线宽合适,默认的太细,最好是1.1;
    2. 字体调大,默认的太小,最好是16;
    3. 散点内部填充颜色要好看,不要刺眼,要手动调RGB值设置颜色;
    4. 坐标轴边框也太细,一定要加粗到1.1;
    5. 一定要加上横纵坐标描述;
    6. 显示出坐标轴范围要留出空隙,不要让图像紧靠边框,且上下左右空隙相等。

    下面我将详细进行描述。

    对于MATLAB的作图细节

    首先我们已经有了几组数据

    x = linspace(0, 3*pi, 40);
    y1 = sin(x);
    y2 = 0.1*x-0.5;
    

    直接画出来是如下图所示,所有颜色、线宽都是默认的。看上去也还行,但是未免也太“空荡”、“简陋”了,缺少设计感。

    最基础的默认的图

    所以,下面我就直接说明怎么修改了:

    对于线条部分

    加粗线条宽度到1.1,线条颜色为黑色(切记),加上散点,散点内部填充颜色。所以加上一下代码:

    plot(x, y1, 'ok-', 'linewidth', 1.1, 'markerfacecolor', [36, 169, 225]/255)
    hold on
    plot(x, y2, 'ok-', 'linewidth', 1.1, 'markerfacecolor', [29, 191, 151]/255)
    

    上面的散点内部填充颜色marker face color后面跟的值是我从博客上找的好看的颜色,网址https://www.icoa.cn/a/512.html。一般我找颜色都是这样子找,找到特别好看的颜色然后把他们的RGB值放上去。所以三个值就分别代表red, green, blue。后面的255代表归一化,因为RGB最高255。

    所以目前做出来的图就是下面这样子,不得不说,好看很多了,图像变得更加清新、美观。因为粗细适中的线条与恰当的颜色最能够抓人眼球。

    修改了线条设置

    但是这样一比,坐标轴就有点单调了,而且右上角的图例好小啊,整体就显得线条图像与坐标轴不是一个风格的,所以下面我们就需要修改坐标轴配置。

    修改坐标轴

    我们需要把坐标轴加粗,字体加大,字体改成Times New Roman,让线条不要紧靠边框,留一些“呼吸”的余地。

    axis([0, 3*pi, -1.2 1.2])
    set(gca, 'linewidth', 1.1, 'fontsize', 16, 'fontname', 'times')
    

    然后就大功告成了!

    大功告成

    不过你们肯定会有一个疑问,为什么要加大字体、加粗线条?

    因为我们在电脑上单独看图像与放到文章中看图像的感觉是不一样的,在文章中,线条太细会让眼睛看起来很难受,无法直接抓住目光,这个图像就成为了背景板被忽视掉。而加粗线条就会让整个图像突出一些,配上好看的配色,就能够直接吸引目光,成为亮点。太粗的线条反而会让人感觉墨水撒了一样。

    同样的,字体一般来说需要和文章字体大小差不多,我选的这个参数是按照我的经验比较万用的。

    以上就是修改一幅图,让其变得更加好看的步骤。

    所有的代码为

    clc, clear, close all
    x = linspace(0, 3*pi, 40);
    y1 = sin(x);
    y2 = 0.1*x-0.5;
    y3 = cos(x+pi/2);
    figure
    % 黑色实线, 圆圈标记, 线宽1.1, 标记内部填充颜色从网上找好看的配色
    plot(x, y1, 'ok-', 'linewidth', 1.1, 'markerfacecolor', [36, 169, 225]/255)
    hold on
    plot(x, y2, 'ok-', 'linewidth', 1.1, 'markerfacecolor', [29, 191, 151]/255)
    % 设置坐标轴范围
    axis([0, 3*pi, -1.2 1.2])
    % 坐标轴边框线宽1.1, 坐标轴字体与大小为Times New Roman和16
    set(gca, 'linewidth', 1.1, 'fontsize', 16, 'fontname', 'times')
    xlabel('Time (s)')
    ylabel('Displacement (m)')
    legend('sin(x)', '0.1x-0.5')
    

    下面则是对于Python的作图指令的介绍。

    对于Python的作图的细节

    基本原则和上文中的一样,只不过对应的操作要更麻烦一点:

    from matplotlib import pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 3*np.pi, 40)
    y1 = np.sin(x)
    y2 = 0.1*x-0.5
    
    plt.figure(figsize=(12.5, 10))
    # 线条颜色black, 线宽2, 标记大小13, 标记填充颜色从网上找16进制好看的颜色
    plt.plot(x, y1, '-o', color='black', markersize=13, markerfacecolor='#44cef6', linewidth=2)
    plt.plot(x, y2, '-o', color='black', markersize=13, markerfacecolor='#e29c45', linewidth=2)
    
    # 字体设置: 字体名称Times New Roman, 字体大小34
    font_format = {'family':'Times New Roman', 'size':34}
    plt.xlabel('Time (s)', font_format)
    plt.ylabel('Displacement (m)', font_format)
    # 设置坐标轴 x范围0~3*pi, y范围-1.2~1.2
    plt.axis([0, 3*np.pi, -1.2, 1.2])
    # 横纵坐标上的字体大小与类型(不是xlabel, 是xticks)
    plt.xticks(fontproperties='Times New Roman', size=34)
    plt.yticks(fontproperties='Times New Roman', size=34)
    # 整个图像与展示框的相对位置
    plt.subplots_adjust(left=0.19,right=0.94, bottom=0.13)
    # 调整上下左右四个边框的线宽为2
    ax=plt.gca()
    ax.spines['bottom'].set_linewidth(2)
    ax.spines['left'].set_linewidth(2)
    ax.spines['right'].set_linewidth(2)
    ax.spines['top'].set_linewidth(2)
    plt.show()
    

    做出来的效果如下所示。

    Python的例子

    总结

    以上就是所有内容,作图的美观着实是一个很考验审美的问题。我现在看我一年前画的图简直是不要再尴尬,但是那时的我看两年前的我也是觉得很辣鸡,因为审美在不断地变化着。说不定一年后再看我现在的作图风格也会觉得很难看,谁知道呢?但目前为止这的确是一种比较好看的风格了,相对于普通人的作图水平来说。

    所以希望我的这篇文章对大家有所帮助,如果喜欢的话麻烦来个关注,点个赞,加个收藏,谢谢!
    很考验审美的问题。我现在看我一年前画的图简直是不要再尴尬,但是那时的我看两年前的我也是觉得很辣鸡,因为审美在不断地变化着。说不定一年后再看我现在的作图风格也会觉得很难看,谁知道呢?但目前为止这的确是一种比较好看的风格了,相对于普通人的作图水平来说。

    所以希望我的这篇文章对大家有所帮助,如果喜欢的话麻烦来个关注,点个赞,加个收藏,谢谢!

    展开全文
  • 例如:plot(time,yout,'b');

    例如:plot(time,yout,'b');


    展开全文
  • 如何美化MATLAB和Python画出来的图写在前面俗话有句叫做:字不如表,表不如图,意思就是图可以最直观最显然的表达我们想要表达的信息,其升降趋势一目了然;表其次,能够看到数值,但是想要看出变化趋势却很困难...
  • 如何在Qt上绘制出Matlab程序跑出来的图?需要做个界面,能实现将Matlab程序处理数据并绘制出来的图显示出来,这个应该怎么去实现?
  • <p style="text-align:center"><img alt="" src="100" /> <p><img alt="" height="899" src="https://img-ask.csdnimg.cn/upload/1616211186543.png" width="1789" /></p>
  • MATLAB如何将图形中点标识出来

    千次阅读 2020-05-19 23:26:39
    //这里5,表示标记几个点 也可以只标记X轴 str=[repmat(' X:',5,1) num2str(x')]; 也可以只标记Y轴 str=[repmat(', Y:',5,1) num2str(y')]; x=1:1:5; >> y=[0.1,0.5,0.8,0.6,0.7]; >> str=.
  • 实用标准文案 精彩文档 实用标准文案 Matlab 图形窗口大小的控制 plot 窗口大小figure 大小axis 设置实用 ...figure 可以 用的最大 szie screen 下面是 figure figue 就是你画图的时候跳出来的那个新的对话窗口如果
  • matlab的绘图保存

    2016-07-23 16:51:00
    matlab的绘图和可视化能力是不用多说的,可以说在业内是家喻户晓的。...今天我只是讨论下如何保存这些由Matlab绘制出来的图像呢?当然借助第三方截图软件,就算了!1、直接另存为在figure中使用菜单file——&g...
  • matlab分析HOG特征提取出来的直方

    千次阅读 2019-11-27 21:04:31
    使用matlab自带的extractHOGFeatures()函数提取HOG特征,对于一幅256*256的图,如果cell_size = 8,block_size= 2, 那么特征数量为:9*block_size^2*(256/8-1)^2 = 34596,绘制图形代码如下: img = imread('fire...
  • 点击上方“AIWalker”,选择加“星标” 精品干货,瞬时送达图像/视频超分领域近期并无突破性方法出现,故近期计划将图像/视频超分相关方法进行一次综述性汇总。计划从不同点出发对图像/视频超分进行一次“反思”之...
  • MATLAB的图像提取实战之对图片腐蚀区域提取显示,对比输出展示出来 直接上代码: close all; clear all;clc; ii=imread('333333333.jpg'); subplot(241);imshow(ii);title('原始图像'); ii2=rgb2gray(ii); ...
  • Matlab导出高清图片正确方法

    万次阅读 2016-07-24 20:08:33
    前几天,有朋友在看了“你一定要知道的十款主流画图软件,淡定的工作从画出高品格图片开始”后留言说:...下面和大家讨论下如何保存由Matlab绘制出来的图像,不完备的地方请留言指正。   当然这里我们只考虑Mat
  • Matlab中保存图像时,图形窗口大小...figue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。figure下面是axes。axes是那个窗口里面你...
  • Matlab中,用plot函数进行画图是一件很方便事情。但是,在figure框中,各坐标轴都是使用默认刻度,并且没有横轴、纵轴说明。 这时我们就要自己在figure对话框中进行添加了。 首先贴一张图片。 点击...
  • Matlab—基础绘图

    2019-09-30 09:17:38
    基础绘图 plot() plot()函数是matlab中用于作图的函数,常用格式为:plot(x,y),x代表横坐标,y代表纵坐标,一般情况下如果是画一组连续的图,x和y 一般都是矩阵 ...,做出来的图是 hold on/off 如果我们写...
  • 01怎么用TexStudio显示出来eps格式图片情况:采用pdflatex编译器,默认是只能读取pdf图片,或jpg,jpeg图片,或png图片。pdflatex只认识这4种格式图片。Xelatex倒是可以不出错,但是也不显示图片,而且在TexStudio...
  • 基于matlab的图像分类

    2019-05-08 11:47:20
    此文件中包含代码是对图像可以进行分类,将图像上裂缝以及孔等可以分类出来
  • 怎么用matlab从许多图片中找到与已知图片相同图片怎么找出来,求大神帮忙,
  • PixelArtWithExcelByMATLAB:此MATLAB程序读取图像并将其逐像素绘制到Excel文件中。本程序用MATLAB代码,读取一张图片,然后在一个Excel文档里通过背景色填充方法画出来
  • Matlab实现图像比例缩放

    万次阅读 2018-05-10 22:35:49
    以灰度图像circuit.tif为例,利用Matlab图像处理工具箱中imresize函数对图像进行比例缩放变换。要求:创建4个figure窗口(不可以用subplot,显示不出来放大效果),分别用于显示原始图像、等比例放大1.5倍后图像...
  • 怎样用matlab读取20张图片并依次展示出来指定路径下 单个文件夹data中所有图像 P = '.\data\';% 图像文件夹路径 img_path_list = dir(strcat(P,'*.jpg'));%获取该文件夹中所有jpg格式图像 N = length(img_path_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,023
精华内容 809
关键字:

matlab出来的图

matlab 订阅