半对数坐标&matlab实现

Posted 踏乡墨客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了半对数坐标&matlab实现相关的知识,希望对你有一定的参考价值。

文章目录

一、坐标系介绍

1.1 算数坐标系(笛卡尔坐标系)

算术坐标系统是普通的笛卡儿坐标,即横纵轴的刻度都是是等距的。

  • 举例:如果每1cm的长度都代表1,则刻度按照顺序0,1,2,3,4……,那么在普通的坐标系中,若y=x,则y=x对应的曲线为一条直线。

1.2 对数坐标系

对数坐标系统:坐标轴是按照相等的指数增加变化表示的.举例来说:如果每1cm代表10的1次方增加,则坐标轴刻度的表示依次为1,10,100,1000,10000……

  • 对数坐标轴分为半对数和双对数坐标轴。
  • 半对数坐标系一个轴是分度均匀的普通坐标轴,另一个轴是分度不均匀的对数坐标轴。
    在对数坐标轴上,某点与原点的实际距离为该点对应数的对数值,但是在该点标出的值是真数(比如y轴是对数坐标轴,1000在坐标轴上画出来与原点的实际距离是3,因为log10(1000)==3,但该点标出的值是103;在对数坐标轴上与原点实际距离为0,1,2的点分别为100,101,102)。
  • 双对数坐标:是指两个坐标轴都是对数坐标,假如对应于x、y轴,则两轴等刻度情况下,其值以相应底数成次方增长.(注意:在各自坐标轴上的是真数(在坐标轴上标的是真数),不是求对数后的值;因为是对坐标轴进行对数变换,不是对数据点变换。)
    比如x1和y1均为1000(真数),则坐标轴标的是1000,又求对数后均为3,因此x1和y1在坐标轴上的位置与原点的实际距离是3)
    举例来说:如果每1cm代表10的1次方增加,则坐标轴刻度依次为1,10,100,1000,10000……

1.3 两者的区别

算数坐标系统较对数坐标系统,他们区别体现于等刻度值增长方式不同,一个均匀增长,一个对数增长.

二、基于matlab的实例分析

在Matlab中,semilogx、semilogy函数可分别将x、y坐标轴变换为对数坐标轴。(注:是对坐标轴的改变

2.1 举例

下面以对y轴进行对数坐标轴变换为例(半对数坐标轴)

  • 首先画出普通坐标系下y=10x对应的曲线(plot命令)
  • 然后画出半对数坐标轴(y为对数坐标轴)下y=10x对应的曲线(semilogy命令)

代码:

 x = 0:0.1:10;
 y = 10.^x;
 
 subplot(2,1,1)
 plot(x,y)
 grid on %打开网格线
 
 subplot(2,1,2)
 semilogy(x, y)

2.2 分析与证明

  • 第一个图为普通坐标系下y=10x对应的曲线,是一个以指数增长的曲线
  • 第二个图是y轴变换为对数坐标轴后得到的新曲线。仔细观察该图的y轴发现10,100(102),1000,10000之间的距离是一样的,但是在一般的笛卡尔坐标系中这是不可能。在对数坐标系中,y轴变成了log10y(即新的坐标轴y’),那么相当于把10,100,1000,10000转化成了1,2,3,4,这样就可以理解了。
  • 证明:对y=10x的两边取对数得lgy=lg(10x),即y‘ = lgy = x。这里的y’为变换得到的对数坐标轴,y为原来坐标轴上的数。可以发现,因为y’ = x,所以在对数坐标轴下的曲线为一条直线;但是y’轴上的数还是原来的数(真数,即100,101,102,103…),不是对数值。
  • 整个过程可以理解为:将y轴变换为对数坐标轴y’,原来y轴上的数据点(100,101,102,103…)没变,其实是坐标轴上的刻度变了,数据点(100,101,102,103…)在对数坐标轴y’上的刻度为0,1,2,3…,所以在半对数坐标系下y’与x对应的曲线为直线。

以上是关于半对数坐标&matlab实现的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB画图工具中坐标外面的底色是灰的,该如修改?

如何设置matlab坐标轴比例

(专题四)03 其它形式的二维曲线

matlab作图(极坐标和对数图像)

在吗?我想请教您一个问题,matlab生成的图像纵坐标的值从上到下依次是10^0,10^(-1),10^-2……10^-7,

在用Matlab画图时,能不能改变原点的位置