一、matlab线条符号、标记符、颜色
线型 | 说明 |
---|---|
- | 实线(默认) |
– | 双划线 |
: | 虚线 |
:. | 点划线 |
标记符 | 说明 |
---|---|
+ | 加号符 |
o | 空心圆 |
* | 星号 |
. | 实心圆 |
x | 叉号符 |
s(square) | 正方形 |
d | 菱形 |
^ | 上三角形 |
v | 下三角形 |
> | 右三角形 |
< | 左三角形 |
p(pentagram) | 五角星 |
h(hexagram) | 六边形 |
pentagram | 五角形 |
hexagram | 六角形 |
颜色 | 说明 |
---|---|
r | 红色 |
g | 绿色 |
b | 蓝色 |
c | 青绿色 |
m | 洋红色 |
y | 黄色 |
k | 黑色 |
w | 白色 |
二、matlab调色板
1、常用颜色的RGB值
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1]
范围内,例如 [0.4 0.6 0.7]
。
⚠️注意: 如果想手动设置颜色,可以根据RGB来计算对应的行向量
如: RGB 颜色(218,31,24) 总和为 sum = 218 + 31 + 24
对应三元组的 r = 218 / sum, g = 31/ sum, b=24/sum
得到 [0.798 0.113 0.087]
颜色 | RGB |
---|---|
天蓝 | [0.67 0 1] |
橘黄 | [1 0.5 0] |
深红 | [0.5 0 0] |
灰 | [0.5 0.5 0.5] |
⚠️注意:MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
'red' | 'r' | [1 0 0] | '#FF0000' | |
'green' | 'g' | [0 1 0] | '#00FF00' | |
'blue' | 'b' | [0 0 1] | '#0000FF' | |
'cyan' | 'c' | [0 1 1] | '#00FFFF' | |
'magenta' | 'm' | [1 0 1] | '#FF00FF' | |
'yellow' | 'y' | [1 1 0] | '#FFFF00' | |
'black' | 'k' | [0 0 0] | '#000000' | |
'white' | 'w' | [1 1 1] | '#FFFFFF' |
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | '#0072BD' | |
[0.8500 0.3250 0.0980] | '#D95319' | |
[0.9290 0.6940 0.1250] | '#EDB120' | |
[0.4940 0.1840 0.5560] | '#7E2F8E' | |
[0.4660 0.6740 0.1880] | '#77AC30' | |
[0.3010 0.7450 0.9330] | '#4DBEEE' | |
[0.6350 0.0780 0.1840] | '#A2142F' |
2、产生标准调色板的函数
函数名 | 调色板 |
---|---|
Hsv | 色彩饱和度,以红色开始,并以红色结束 |
Hot | 黑色-红色-黄色-白色 |
Cool | 青蓝和洋红的色度 |
Pink | 粉红的色度 |
Gray | 线型灰度 |
Bone | 带蓝色的灰度 |
Jet | Hsv的一种变形,以蓝色开始,以蓝色结束 |
Copper | 线型铜色度 |
Prim | 三棱镜,交替为红、橘黄、黄、绿和天蓝 |
Flag | 交替为红、白、蓝和黑 |
缺省情况下,调用上述函数灰产生一个64×3的调色板,用户也可指定调色板大小。
三、matlab线条
Matlab画的线较多时,线的颜色的选取对图的美观是有很大的影响的。 Jonathan C. Lansey
Matlab-code提供了在不同线上画不同颜色简单易用的函数。
Examples demonstrating thecolors.
% LINECOLORS
N=6;
X =linspace(0,pi*3,1000);
Y =bsxfun(@(x,n)sin(x+2*n*pi/N), X.',1:N);
C =linspecer(N);
axes('NextPlot','replacechildren','ColorOrder',C);
plot(X,Y,'linewidth',5)
ylim([-1.1 1.1]);% SIMPLER LINE COLOREXAMPLE
N = 6; X =linspace(0,pi*3,1000);
C =linspecer(N)
holdoff;
forii=1:N Y =sin(X+2*ii*pi/N); plot(X,Y,'color',C(ii,:),'linewidth',3); hold on;
end% COLORMAPEXAMPLE
A =rand(15);
figure; imagesc(A); % defaultcolormap
figure; imagesc(A);colormap(linspecer); % linspecer colormap
注:C即为生成的RGB颜色(非常好用)
【用法】
grid 打开网格线 – 虚线
hold on 命令用于在已画好的图形上添加新的图形
1、例子1
x=0:0.001:10; % 0到10的1000个点(每隔0.001画一个点)的x座标
y=sin(x); % 对应的y座标
plot(x,y); % 绘图
注:matlab画图实际上就是描点连线,因此如果点取得不密,画出来就成了折线图,请试验之
2 、例子2
Y=sin(10*x);
plot(x,y,'r:',x,Y,'b') % 同时画两个函数
3 、若要改变颜色,在座标对后面加上相关字串即可
x=0:0.01:10;
plot(x,sin(x),'r')
4 、若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可
plot(x,sin(x),'r*')
5、用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围
axis([0,6,-1.5,1])
6 、MATLAB也可对图形加上各种注解与处理:(见上表)
xlabel('x轴'); % x轴注解
ylabel('y轴'); % y轴注解
title('余弦函数'); % 图形标题
legend('y = cos(x)'); % 图形注解
gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置
grid on; % 显示格线
7、画椭圆
a = [0:pi/50:2*pi]'; %角度
X = cos(a)*3; %参数方程
Y = sin(a)*2;
plot(X,Y);
xlabel('x'), ylabel('y');
title('椭圆')
8 、绘制函数 在0 ≤ x ≤ 1时的曲线。
x=0:0.1:1
y=x.*exp(-x) %为什么用点运算?若不用会怎样
plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)')
9 、画出衰减振荡曲线 与它的包络线 及 。t 的取值范围是[0, 4π] 。
t=0:pi/50:4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,'-r',t,y0,':b',t,-y0,':b') % -r表示红色实线,:b表示蓝色点线,看上表
grid
10 、在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图
x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
u=2*sin(x).*cos(x); v=sin(x)./cos(x);
subplot(2,2,1),plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')
subplot(2,2,2),plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
subplot(2,2,3),plot(x,u),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')
subplot(2,2,4),plot(x,v),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')
11、柱状图
单柱:每个柱一个颜色
% [value nan nan nan] 数组长度代表柱子的个数,value表示当前位置绘制柱子
bar([3.2 nan nan nan], 'facecolor', [0.855 0.122 0.094] , 'BarWidth',0.4)
hold on
bar([nan 7.89 nan nan], 'facecolor',[0.980 0.427 0.114], 'BarWidth',0.4)
bar([nan nan 14.8 nan], 'facecolor',[0.0275 0.502 0.811], 'BarWidth',0.4)
bar([nan nan nan 16.8], 'facecolor',[0.957 0.478 0.459], 'BarWidth',0.4)% 设置x轴刻度的标签
set(gca,'XTickLabel',{'A','B','C', 'D'})
% 设置字体大小
set(gca,'FontSize',14)ylabel('Average Localization Error (m)');
xlabel('Algorithms');
y=[37.5 21.2;19.3, 3; 15.4, 3.6;];
b=bar(y);
% 2016r
set(b(1),'FaceColor',[0.0275 0.501 0.812])
set(b(2),'FaceColor',[0.980 0.427 0.114])
% 2017r
% b(2).FaceColor = '#D2F9A7';% 设置x轴刻度的标签
set(gca,'XTickLabel',{'A','B','C'})
% 设置字体大小
set(gca,'FontSize',14)
% 图例
legend('man','woman');
xlabel('Methods');
ylabel('User Participation(%)');
12、折线图
%x轴上的数据,第一个值代表数据开始,第二个值代表间隔,第三个值代表终止
x=1:1:4;%a数据y值
a=[7.93, 8.67, 8.55, 9.08 ]
%b数据y值
b=[11.54, 9.39, 9.82, 11.78]
%c数据y值
c=[24.11, 25.82, 29.96, 27.56]plot(x,a,'-*b', x,b,'-or', x,c,'-xg'); %线性,颜色,标记% axis([0,6,0,700]) %确定x轴与y轴框图大小set(gca,'XTick',[1:1:7]) %x轴范围1-6,间隔1
% set(gca,'YTick',[0:100:700]) %y轴范围0-700,间隔100
%右上角标注
legend('DNN','KNN', 'SVM');
set(gca,'XTickLabel',{'0','1','2','3'})
xlabel('Floor') %x轴坐标描述
%y轴坐标描述
ylabel('Average Localization Error(m)')
13、饼图
% x = [25, 46]
x = [18, 50, 3]
pie3(x)
legend('bachelor','postgraduate', 'doctor')
14、累计分布图 CDF
% 注:原始数据太多,为了方便展示,此处仅放置部分数据
% original
original = [1.33, 2.13, 1.92, 1.9, 1.89, 2.34, 2.48, 2.64, 2.11, 2.66];% random
rand = [3.16, 3.72, 2.37, 3.05, 2.72, 2.53, 2.04, 2.33, 1.32, 1.87];% internal 2
int2 = [1.54, 2.43, 2.04, 1.87, 2.21, 2.44, 2.9, 2.9, 2.59, 2.74];% mix2
mix2 = [4.72, 5.47, 6.05, 5.96, 5.29, 4.51, 4.15, 4.39, 4.21, 4.21];ho= cdfplot(original);
set(ho,'color','r','Linewidth',1);
hold on;
hrand= cdfplot(rand);
set(hrand,'color','g','Linewidth',1);
hold on;
hr2= cdfplot(int2);
set(hr2,'color','b','Linewidth',1);
hold on;hold on;
hm2= cdfplot(mix2);
set(hm2,'color','m','Linewidth',1);
hold on;legend('Original','Random', 'Interval-2','Mix-2');
xlabel('Localization Errors(m)')
%y轴坐标描述
ylabel('CDF')
15.折线图和条形图的双轴图
参考:吃小羊 作图实例13
使用创建具有两个y轴的图表yyaxis
。图形函数以图表的活动面为目标。使用控制活动侧yyaxis
。使用左y轴绘制条形图。使用右y轴绘制折线图。将条形图系列对象和图表线对象分配给变量。
days = 0:5:35;
temp = [29 23 27 25 20 23 23 17];
conc = [515 420 370 250 135 120 60 20];%控制左纵轴
yyaxis left
%绘柱状图,赋值图形句柄给b
b = bar(days,temp);
% 2016r
set(b(1),'FaceColor',[0.0275 0.501 0.812])% 2017r
% b(2).FaceColor = '#D2F9A7';
%控制右纵轴
yyaxis right
%绘折线图,赋值图形句柄给p
p = plot(days,conc);title('Temperature and Concentration Data')
xlabel('Length')
%控制左纵轴
yyaxis left
ylabel('Average Localization Error(m)')%控制右纵轴
yyaxis right
ylabel('Running Time')
%设置线宽
p.LineWidth = 3;
%设置柱面颜色
b.FaceColor = [ 0 0.447 0.741];
16.多图绘制
% 需要matlab R2019b
x = linspace(0,30);
y1 = sin(x);
y2 = sin(x/2);
y3 = sin(x/3);
y4 = sin(x/4);% Create plots
t = tiledlayout(2,2); % Requires R2019b or later %获得图形窗口对象
nexttile
plot(x,y1)
nexttile
plot(x,y2)
nexttile
plot(x,y3)
nexttile
plot(x,y4)
matlab 2016
rows = 2;
cols = 2;subplot(rows,cols,1)
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
title('Subplot 1: sin(x)')subplot(rows,cols,2)
y2 = sin(2*x);
plot(x,y2)
title('Subplot 2: sin(2x)')subplot(rows,cols,3)
y3 = sin(4*x);
plot(x,y3)
title('Subplot 3: sin(4x)')subplot(rows,cols,4)
y4 = sin(8*x);
plot(x,y4)
title('Subplot 4: sin(8x)')
四、结果图编辑
如果想根据需求修改线条的颜色、文字大小
可以通过 编辑 →图形属性 来对图中的元素进行调整
五、matlab导出
具体设置如下:
文件→导出设置
渲染→分辨率→设置600
字体→自定义粗细→选择粗
线条→使用固定线宽 2 磅
→应用于图形→
1.eps格式图片
适合在latex的小论文
导出→保存eps格式文件
2.emf格式图片
能够在Word高清显示
导出→保存emf格式文件