How MATLAB draws a line chart and beautifies the line chart

How MATLAB draws a line chart and beautifies the line chart

When writing papers, the images we draw directly with MATLAB are always far behind those of the big guys. Now let's see how to beautify the pictures of scientific research papers.

Draw the base image

The data we use, the saved file name is " d a t a A 1. c s v " "dataA1.csv" "dataA1.csv", for simplicity, I selected 10 rows of data, x = 1 : 10 x=1:10 x=1:10 is the same, y y The two columns of data with different y are as follows:

Let's plot the next two columns of data today. First we import the data in MATLAB

data=csvread('dataA1.csv');  %The data imported here can only contain numbers

There are other ways to import data here. If it is data in .xlsx format, use the following code

data=xlsread("dataA1.xlsx")

Now we use the following code to draw a line chart,

clc;clear; % to clear
%% Import data
data=csvread('dataA1.csv');
% data=dataA1
%% Plot
figure
hold on  %Keep the interface from being refreshed
for i=1:size(data,2)-1
    plot(data(:,1),data(:,i+1))
end
legend('GA','GB','Location','eastoutside')

The output results are saved in .png format. The picture is as follows:

Next, let's see how to beautify the above picture.

GUI interface for adjustments

The first method is to adjust through the GUI interface of MATLAB, that is, for the drawn picture, we click "Edit", and then click "Figure Properties". You can see the Property Inspector below.


Here you can make various settings for the properties of the picture, and I won’t explain it in detail here. However, this is for the case where there are few pictures, but for when many pictures are to be drawn, how can you adjust the parameters one by one? It's not very troublesome, let's look at another method next.

Write code to adjust

The second way is to make adjustments by writing code. First of all, we first design the parameters of the image, as follows

fontSize=28; %font text
lineWidthBox=1.5; %Box line width
lineWidth=2.5; %line width
symbol=['o','s']; %mark
markerSize=7; % marked size
pictureSize=[200,200,950,650]; % The size of the drawn picture, 200,200,The position of the lower left corner, representing the pixel value.  950,650 The length and height of the picture also represent the pixel value.
fileName='F2.png'; % Save the picture name
pictureResolution='-r600'; % The greater the precision, the clearer the picture.
color=[[0 0 139]/255;[0 139 139]/255];%2 A matrix with 3 rows and 3 columns  
coordinateRange=[[0 10];[0 2500]];%coordinate range
xLabel='Time [t]'; %x Label
yLabel='Frequency [m/t]';% y Label

Here we set parameters such as the font of the picture, the line width of the Box, and the mark of the point. For the color, we can also choose the color we like. You can check the website https://tool.oschina.net/commons ?type=3. After adjusting the parameters, we draw

%% Plot
figure
hold on  %Keep the interface from being refreshed
box on % box call out directly
set(gca,'LineWidth',lineWidthBox) %set up box line width
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  %draw pictures
legend(' GA',' GB','Location','eastoutside') %label, outside
legend('boxoff') %remove legend border
set(gca,'XLim',coordinateRange(1,:),'YLim',coordinateRange(2,:)); % coordinate range
xlabel(xLabel)
ylabel(yLabel )
set(gca,'FontName','Time New Roman','FontSize',fontSize) %Set all font sizes

set (set coordinate attributes), gca: indicates the current coordinate area or graph, FontName sets the font, commonly used ‘Times New Roman’; finally we save the picture, here gcf: Current figure handle (current image handle)

%% Output  save
set(gcf,'Position',pictureSize) %The size of the output image size
print('-djpeg',fileName,pictureResolution); % Name, precision, output the picture

The complete code is as follows:

clc;clear; % to clear
%% Import data
data=csvread('dataA1.csv');
%% Parameter setting
fontSize=28; %font text
lineWidthBox=1.5; %Box line width
lineWidth=2.5; %line width
symbol=['o','s']; %mark
markerSize=7; % marked size
pictureSize=[200,200,950,650]; % The size of the drawn picture, 200,200,The position of the lower left corner, representing the pixel value.  950,650 The length and height of the picture also represent the pixel value.
fileName='F2.png'; % Save the picture name
pictureResolution='-r600'; % The greater the precision, the clearer the picture.
color=[[0 0 139]/255;[0 139 139]/255];%2 A matrix with 3 rows and 3 columns  https://tool.oschina.net/commons?type=3
coordinateRange=[[0 10];[0 2500]];%coordinate range
xLabel='Time [t]'; %x Label
yLabel='Frequency [m/t]';% y Label
%% Plot
figure
hold on  %Keep the interface from being refreshed
box on % box call out directly
set(gca,'LineWidth',lineWidthBox) %set up box line width
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  %draw pictures
legend(' GA',' GB','Location','eastoutside') %label, outside
legend('boxoff') %remove legend border
set(gca,'XLim',coordinateRange(1,:),'YLim',coordinateRange(2,:)); % coordinate range
xlabel(xLabel)
ylabel(yLabel )
set(gca,'FontName','Time New Roman','FontSize',fontSize) %Set all font sizes
%% Output  save
set(gcf,'Position',pictureSize) %The size of the output image size
print('-djpeg',fileName,pictureResolution); % Name, precision, output the picture

Then our adjusted picture is:

Summarize

Through the above experiment. It is indeed complicated to write code to beautify scientific research pictures, but it is easy to use. For scientific research papers, a beautiful picture may bring you a big bonus. Friends who have doubts can communicate together.

Tags: image processing MATLAB Machine Learning computer

Posted by mediabob on Sat, 17 Dec 2022 17:57:35 +0530