matlab画图,分区域用不同坐标分度

        前几天测二极管伏安特性,画图时,由于正向和反向特性差值比较大,需要在y轴两边使用不同坐标分度,网上搜了一下,也没找到自己想要的方案,不过最终还是解决了,分享一下。

        其实就是画图之前把x轴数据先映射一下,画图之后在改X轴标签即可。代码如下。

clc
clear

v1=[0.000,0.100,0.200,0.300,0.400,0.680,0.700,0.710,0.720,0.730,0.730];%正向电压
v2=[-0.00,-1.00,-2.00,-2.5 ,-3.00,-2.95,-3.15,-3.33,-3.43,-3.50,-3.60];%反向电压
i1=[0.0  ,0.4  ,0.9  ,1.1  ,1.3  ,5.0  ,10.0 ,15.0 ,20.0 ,25.0 ,30.0 ];%正向电流
i2=[-0.0 ,-0.0 ,-0.2 ,-1.5 ,-6.6 ,-5.0 ,-10.0,-15.0,-20.0,-25.0,-30.0];%反向电流

v3=[v1,v2/3];%这里是关键,映射横坐标
i3=[i1,i2];%整合纵轴数据

[v,i]=sort(v3);%数据是乱的,要先排序
i=i3(i);

plot(v,i);

x=[-1.2:0.2:1];%要显示的坐标值
set(gca,'xtick',x);

xl=[-3.6:0.6:0, 0.2:0.2:1];%还原横轴显示的数据,这里分了两段,一段0.6一格,另一段0.2一格,0.6/0.2=3
xs=sprintfc('%g',xl);
set(gca,'xtickLabel',xs);

grid on

        我这里分了两段用不同坐标分度,用这种方法也可以分n段。

        这是效果图。

      

       

猜你喜欢

转载自blog.csdn.net/PoJiaA123/article/details/53730135
今日推荐