matlab绘制双坐标轴

提示:以下提供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,对图片的更多修饰可参考以后的文章或根据自身需求修改。

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值