1 Star 9 Fork 2

iam002 / MatlabDrawNiceGraph

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
demo03.m 2.60 KB
一键复制 编辑 原始数据 按行查看 历史
iam002 提交于 2022-03-13 00:06 . ‘整理代码’
clear
%% 创建 figure, 并设置背景颜色
back_color = [0.15, 0.15, 0.15];
h_f = figure('Color', back_color);
%% 创建 axes
h_a = axes('Parent', h_f);
set(h_a, 'NextPlot', 'add'); % 相当于 hold on
%% 创建 plot
% 绘制正弦积分函数
fun = @(x)(sinc(x/pi));
x = linspace(-1, 4, 400);
y = zeros(1, length(x));
wc = pi; % 截止频率
td = 1; % 时延
for i = 1:length(x)
tmp = (x(i) - td)*wc;
y(i) = integral(fun, 0, tmp)/pi + 0.5;
end
plot(x, y, 'LineStyle', '-', 'Color', [0, 1, 1], 'LineWidth', 1.5);
wc = 2*pi; % 增加截止频率
td = 1; % 时延
for i = 1:length(x)
tmp = (x(i) - td)*wc;
y(i) = integral(fun, 0, tmp)/pi + 0.5;
end
plot(x, y, 'LineStyle', '-', 'Color', [0.39, 0.83, 0.07], 'LineWidth', 1.5);
% 其他标线
lcolor = [0.39, 0.83, 0.07];
plot([td, td], [0, 0.5], 'LineStyle', '--', 'Color', lcolor, 'LineWidth', 1.5)
plot([0, td], [0.5, 0.5], 'LineStyle', '--', 'Color', lcolor, 'LineWidth', 1.5)
plot([0, td+pi/wc], [1,1]*max(y), 'LineStyle', '--', 'Color', lcolor, 'LineWidth', 1)
plot([1,1]*(td+pi/wc), [0, max(y)], 'LineStyle', '--', 'Color', lcolor, 'LineWidth', 1)
plot([0, td-pi/wc], [1,1]*min(y), 'LineStyle', '--', 'Color', lcolor, 'LineWidth', 1)
plot([1,1]*(td-pi/wc), [0, min(y)], 'LineStyle', '--', 'Color', lcolor, 'LineWidth', 1)
plot([0,4], [1,1], 'LineStyle', '-.', 'Color', [1, 0, 1], 'LineWidth', 1);
% 设置坐标轴的范围
xlim([-1, 4]);
ylim([-0.3, 1.5]);
%% 绘制 arrow
mdng.DrawAxisWithArrow(h_a, 'XLabel', '$t$', 'YLabel', '$s(t)$', 'OLabel', '$O$');
%% 添加一些标注
% 在axes上的(0,1)左侧添加标注
fp = mdng.CoorFromAxis2Fig(h_a, [0,1]); % 将axes的坐标转化为figure上的坐标,下同
mdng.FigPointLabel(fp, '1.0', 'west', 'Color', [0.8, 0.52, 0.98], 'FontSize', 14);
% 在axes上的(0,0.5)左侧添加标注
fp = mdng.CoorFromAxis2Fig(h_a, [0,0.5]);
mdng.FigPointLabel(fp, '0.5', 'west', 'Color', [0.8, 0.52, 0.98], 'FontSize', 14);
% 在axes上的(td,0)下方添加标注
fp = mdng.CoorFromAxis2Fig(h_a, [td,0]);
mdng.FigPointLabel(fp, '$t_d$', 'south', 'Color', [0.8, 0.52, 0.98], 'FontSize', 14);
% 在axes上的(td+pi/wc,0)下方添加标注
fp = mdng.CoorFromAxis2Fig(h_a, [td+pi/wc,0]);
mdng.FigPointLabel(fp, '$t_d+\frac{\pi}{w_c}$', 'south', ...
'Color', [0.8, 0.52, 0.98], 'FontSize', 12);
% 在axes上的(td-pi/wc,0)下方添加标注
fp = mdng.CoorFromAxis2Fig(h_a, [td-pi/wc, min(y)]);
mdng.FigPointLabel(fp, '$t_d-\frac{\pi}{w_c}$', 'south', ...
'Color', [0.8, 0.52, 0.98], 'FontSize', 12);
%% 保存图像
if false
img_name = SaveFig2Img(h_f, 'figures\demo03.png');
fprintf('图像保存为: %s\n', img_name);
end
Matlab
1
https://gitee.com/iam002/MatlabDrawNiceGraph.git
git@gitee.com:iam002/MatlabDrawNiceGraph.git
iam002
MatlabDrawNiceGraph
MatlabDrawNiceGraph
main

搜索帮助