MATLAB如何绘制折线图和美化折线图

MATLAB如何绘制折线图和美化折线图

在写论文的时候,我们直接用MATLAB绘制的图像和大佬的比起来总是差很远,现在我们来看如何美化科研论文的图片。

绘制基本图像

我们用到的数据,保存的文件名是 " d a t a A 1. c s v " "dataA1.csv" "dataA1.csv",为了简单,我就选取了10行数据, x = 1 : 10 x=1:10 x=1:10相同, y y y不同的两列数据如下:
请添加图片描述
我们今天来绘制后面两列数据。首先我们在MATLAB中导入数据

data=csvread('dataA1.csv');  %在这里导入的数据只能包含数字

这里还有其他方法导入数据,假如是.xlsx格式的数据,这用以下代码

data=xlsread("dataA1.xlsx")

现在我们用以下代码绘制出折线图,

clc;clear; % 清除
%% Import data
data=csvread('dataA1.csv');
% data=dataA1
%% Plot
figure
hold on  %保持界面不会被刷新
for i=1:size(data,2)-1
    plot(data(:,1),data(:,i+1))
end
legend('GA','GB','Location','eastoutside')

输出的结果我们保存为.png格式。图如下:
请添加图片描述
接下里我们看如何美化上面这张图片。

GUI界面进行调整

第一种方法是通过MATLAB的GUI界面进行调整,也就是对于绘制出来的图片,我们点击“编辑”,然后点击"图窗属性"。可以看到下面的“属性检查器”。

请添加图片描述
在这里可以对图片的属性进行各种各样的设置,这里就不详细讲解了,然而这是针对图片很少的情况下,但是针对要绘制很多图片的时候,在一个一个参数的调,岂不是很麻烦,接下来我们看另一种方法。

编写代码进行调整

第二种方法是通过编写代码进行调整。首先我们先对图像的参数进行设计,如下

fontSize=28; %字体文字
lineWidthBox=1.5; %Box的线宽
lineWidth=2.5; %线条的线宽
symbol=['o','s']; %标记
markerSize=7; % 标记的尺寸
pictureSize=[200,200,950,650]; % 绘制出来图片的尺寸,200,200,左下角的位置,代表像素值。950,650 图片的长和高,也代表像素值。
fileName='F2.png'; % 保存图片的名字
pictureResolution='-r600'; % 精度越大,图片越清晰。
color=[[0 0 139]/255;[0 139 139]/255];%2行3列的矩阵  
coordinateRange=[[0 10];[0 2500]];%坐标范围
xLabel='Time [t]'; %x标签
yLabel='Frequency [m/t]';% y标签

在这里我们对图片的字体,Box的线宽,点的标记等参数进行了参数取值,对于color,我们还可以选取自己喜欢的颜色,可以查看网站https://tool.oschina.net/commons?type=3。调好参数以后,我们进行绘图

%% Plot
figure
hold on  %保持界面不会被刷新
box on % box直接调出来
set(gca,'LineWidth',lineWidthBox) %设置box的线宽
for i=1:size(data,2)-1
    plot(data(:,1),data(:,i+1),'-','Color',color(i,:),'LineWidth',lineWidth,'Marker',symbol(1,i),'MarkerSize',markerSize,'MarkerFaceColor',color(i,:))
end  %绘制图片
legend(' GA',' GB','Location','eastoutside') %标签,外边
legend('boxoff') %去除图例边框
set(gca,'XLim',coordinateRange(1,:),'YLim',coordinateRange(2,:)); % 坐标范围
xlabel(xLabel)
ylabel(yLabel )
set(gca,'FontName','Time New Roman','FontSize',fontSize) %对所有的字体字号进行设置

set(设置坐标属性),gca : 表示当前坐标区或图,FontName 设置字体, 常用 ‘Times New Roman’ ;最后我们对图片进行保存,这里 gcf : Current figure handle(当前图像句柄)

%% Output  保存
set(gcf,'Position',pictureSize) %输出图片尺寸的大小
print('-djpeg',fileName,pictureResolution); % 名字,精度,对图片进行输出

完整的代码如下:

clc;clear; % 清除
%% Import data
data=csvread('dataA1.csv');
%% Parameter setting
fontSize=28; %字体文字
lineWidthBox=1.5; %Box的线宽
lineWidth=2.5; %线条的线宽
symbol=['o','s']; %标记
markerSize=7; % 标记的尺寸
pictureSize=[200,200,950,650]; % 绘制出来图片的尺寸,200,200,左下角的位置,代表像素值。950,650 图片的长和高,也代表像素值。
fileName='F2.png'; % 保存图片的名字
pictureResolution='-r600'; % 精度越大,图片越清晰。
color=[[0 0 139]/255;[0 139 139]/255];%2行3列的矩阵  https://tool.oschina.net/commons?type=3
coordinateRange=[[0 10];[0 2500]];%坐标范围
xLabel='Time [t]'; %x标签
yLabel='Frequency [m/t]';% y标签
%% Plot
figure
hold on  %保持界面不会被刷新
box on % box直接调出来
set(gca,'LineWidth',lineWidthBox) %设置box的线宽
for i=1:size(data,2)-1
    plot(data(:,1),data(:,i+1),'-','Color',color(i,:),'LineWidth',lineWidth,'Marker',symbol(1,i),'MarkerSize',markerSize,'MarkerFaceColor',color(i,:))
end  %绘制图片
legend(' GA',' GB','Location','eastoutside') %标签,外边
legend('boxoff') %去除图例边框
set(gca,'XLim',coordinateRange(1,:),'YLim',coordinateRange(2,:)); % 坐标范围
xlabel(xLabel)
ylabel(yLabel )
set(gca,'FontName','Time New Roman','FontSize',fontSize) %对所有的字体字号进行设置
%% Output  保存
set(gcf,'Position',pictureSize) %输出图片尺寸的大小
print('-djpeg',fileName,pictureResolution); % 名字,精度,对图片进行输出

那么我们调整好的的图片为:

请添加图片描述

总结

通过上述实验。发现代码编写来美化科研图片确实很复杂,但是方便使用。对于科研论文来说,一个优美的图片可能给你带来大大的加分。有疑问的小伙伴可以一起交流。

猜你喜欢

转载自blog.csdn.net/weixin_48266700/article/details/128343448