提示:以下提供MATLAB开启右边y轴和在底部多生成一条x轴的代码demo
前言
在MATLAB绘制plot或contour等图时,有时候会希望多开启一个坐标轴对数据进行多重解释,以下介绍在绘图时如何多开启一条坐标轴。
一、生成数据
首先生成一维或二维随机数组,使用rand函数
data_contour = rand(40, 20)*100; % 生成0-100以内的40×20的矩阵,用于绘制contourf
data_plot = rand(1, 20); % 生成0-1以内的一维数组,用于绘制plot
二、绘图
绘制plot和contourf多开启一条坐标轴的步骤是相同的,只需要将plot替换成contourf即可。
1.生成右侧y轴
首先生成plot图
figure
plot(data_plot);
grid on;
hold on;
生成的plot图如下图所示
假设开启的右边y轴是以数据的10倍的来表示,代码如下
ylims = get(gca, 'Ylim'); % 获取左边y轴范围
yyaxis right; % 打开右边y轴
yticks(ylims(1) : 0.1 : ylims(end));
yticklabels(ylims(1) * 10 : 0.1*10: ylims(end)*10); % 将右边坐标轴标签修改
ylim(ylims); % 限定y轴范围
set(gca, 'Ycolor','k'); % 将坐标轴颜色调成黑色,可根据自身需要修改
画出来的图如下
这样就实现了用右边坐标轴对数据进行多重解释,实际应用中可根据自身需求修改右坐标轴的范围。
2.在底部多生成一个x轴
如果需要多生成一个x轴对数据进行多重解释,可以考虑在底部多生成一条x轴。接着上述代码继续往下写。
hold on;
fontSize = 10; % 定义字体大小
gca % 暂时不能去除此代码,去除后第二条x轴与第一条x轴在x方向上位置不一致
ax1 = gca;
ax2=axes('Position',get(ax1,'Position'),...
'XAxisLocation','bottom',...
'Color','none',...
'XColor','k','YColor','none'); % 绘制一根与原x轴位置一致的x坐标轴
xlim([20 40]) % 限定范围
set(gca, 'Fontname', 'Times New Roman','FontSize',fontSize, ...
'FontWeight','bold', 'XDir', 'reverse'); % 修改坐标轴字体类型、大小、加粗,对X方向反转,可不进行此步骤
axpo=get(ax1,'Position'); % 获取第二条坐标轴位置信息
axpo(2)=axpo(2)-0.06; % 以当前x轴位置为基准,在y方向向下移动,可根据实际修改
set(ax2,'Position',axpo) % 调整第二条坐标轴的位置
生成的坐标轴如下图所示
实际应用时,可以根据自身需求对第二条坐标轴进行更多修饰,方法与设定原坐标轴的方法一致。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了MATLAB如何多开启一条y轴或x轴,提供了代码的demo,对图片的更多修饰可参考以后的文章或根据自身需求修改。