画图时有时不想使用自然坐标(线性刻度),而需要使用对数坐标,此处给出几种方法:

1使用ezplot画图时,坐标用对数坐标。
     ezplot默认横坐标从-2pi到2pi
举例:以y=x为例
a) 其中一方为对数坐标,另一方为线性坐标
 syms xezplot('y=x')set(gca,'xscale','log')
画出y=x曲线,并将横坐标用对数坐标表示,纵坐标用自然坐标。
结果如下:
考虑到图形绿色不够显眼,改为黑色,代码如下:
syms x
h1=ezplot('y=x');
set(gca,'xscale','log')
set(h1,'Color','k')  %注意,要将画图ezplot赋给h1

同理,要将y改为对数坐标,而x改为线性坐标,则只要将“xscale”改为“yscale”即可。
syms x
h1=ezplot('y=x');
set(gca,'yscale','log')
set(h1,'Color','k') 

特别值得一提的是,如果横坐标用的是z表示,而纵坐标用y表示,即为y=z(而不是x),那么要将横坐标改为对数坐标时依然用“xscale”不能用“zscale”(因为MATLAB默认x表示横坐标)

b) 两边坐标轴都用对数坐标

同样以“y=x”为例,代码如下:
syms x
h1=ezplot('y=x');
set(gca,'xscale','log','yscale','log')
set(h1,'Color','k')

亦即只需将y也改为“yscale”即可。
2)plot下使用对数坐标
a) 一支坐标轴用对数坐标,另一支用线性坐标
clc
x=-6:0.01:6;
y=x;
plot(x,y);%一定是自变量x在前,函数y在后,不能搞混,最好也不要只写plot(y)
semilogx(x,y,'k') %将横坐标x改为对数坐标,纵坐标还是线性坐标,k表示将曲线用黑色表示(此即半对数坐标)

同理,要将纵坐标改为对数坐标,而横坐标为线性刻度,也只需做一微小调整,即将semilogx改为semilogy代码如下:
clc
x=-6:0.01:6;
y=x;
plot(x,y);%一定是自变量x在前,函数y在后,不能搞混,最好也不要只写plot(y)
semilogy(x,y,'k')

b) 横纵坐标都用对数刻度
使用loglog(x,y)
clc
x=-6:0.01:6;
y=x;
plot(x,y);%一定是自变量x在前,函数y在后,不能搞混,最好也不要只写plot(y)
loglog(x,y,'k')

c) log10( ) 以10为底
举例,现有横纵坐标两组数据,横坐标数据为L,纵坐标数据为TT,画对数坐标
导入数据(可以直接从matlab横栏上的导入数据箭头导入),笔者采用代码导入位于桌面中的数据
importdata('C:\Users\Wudl\Desktop\test_')

画图:

plot(log10(L),log10(TT))

由此得到的图是对数坐标下的图,红色区域是对数坐标,比如2,代表10的平方。还可以使用set()函数axis()对图形做一定的限制,如:
axis([0 4 -4 4])横坐标从0到4,y从-4到4

loglog()函数

先在命令中输入figure新建画窗,以便和上面的图对比
然后我们采用loglog()函数
可见loglog函数得到的对数坐标图有底数为10的刻度。

e)先plot再采用画图窗口工具修改坐标为对数形式

plot(L,TT)

然后在“编辑edit”下的“坐标轴属性”可以修改

或者加一条命令
set(gca,'xscale','log','yscale','log')

至此已经结束,以下为笔者计算某道题时用的代码(作为笔者笔记使用)
clc
clear
c=299792458;
h=0.7;
omegam0=0.3;
syms z
y1=5*log10(2*(1+z-sqrt(1+z))*c/h)
h1=ezplot(y1,[0.005,1.1]);  %横坐标的取值范围为0.005到1.1
set(h1,'Color','r')
hold on
y2=5*log10(2*(2-omegam0+omegam0*z-(2-omegam0)*sqrt(1+omegam0*z))*c/(h*omegam0^2));
h2=ezplot(y2,[0.005,1.1])
set(h2,'Color','k')
set(gca,'xscale','log')         %注意,一定是xscale,虽然横坐标是z,但不能写成zscale.
y3=5*log10((1+z)*c/h*int((0.7+0.3*(1+z)^(3))^(-1/2),0,z));
h3=ezplot(y3,[0.005,1.1])
set(h3,'Color','b')
set(gca,'xscale','log')         %注意,一定是xscale,虽然横坐标是z,但不能写成zscale.
legend('红线为omegam0=1','黑线为Omegam0=0.3且用马丁公式','绿线为omegam0=0.3,omegalambda=0.7')
axis([0.005 1.1 32 46])
%{
以上中y1,y2,y3都是m-M,表示视星等与绝对星等的差值,红移越大值越大表示星的亮度越按,而红移越大
则表示离我们越远。
%}

matlab对数坐标的使用相关推荐

  1. matlab 对数坐标

    在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换.对数转换有双对数坐标转换和单轴对数坐标转换两种.用loglog函数可以实 ...

  2. Matlab二维线图对数坐标及与hold on结合的问题

    半对数坐标与双对数坐标 在Matlab中绘制对数坐标的二维线图主要有以下几个函数: 函数名 语法 含义 loglog loglog(X,Y) x, y坐标轴双对数线图 semilogy semilog ...

  3. matlab如何取对数坐标,利用Matlab提取图片中曲线数据(线性修正,支持对数坐标)

    利用Matlab提取图片中曲线数据 前一段时间看到一篇文章"利用Matlab提取图图片中的数据",觉得思路挺好,遂下载下来研究了一番,发现作者所编写的程序没有考虑原始图片非水平放置 ...

  4. matlab scatter函数怎么设置对数坐标

    scatter(x,y); set(gca,'yscale','log'); 设置y轴为对数坐标

  5. python使用matplotlib可视化函数曲线、设置y轴为对数坐标(log scale)、默认情况下坐标轴为线性坐标

    python使用matplotlib可视化函数曲线.设置y轴为对数坐标(log scale).默认情况下坐标轴为线性坐标 目录

  6. Matplotlib可视化散点图、配置X轴为对数坐标、并使用线条(line)连接散点图中的数据点、基于分组变量配置数据点的颜色(connecting two coordinates with line

    Matplotlib可视化散点图.配置X轴为对数坐标.并使用线条(line)连接散点图中的数据点.基于分组变量配置数据点的颜色(connecting two coordinates with line ...

  7. R语言ggplot2可视化基本散点图(设置X轴使用对数坐标)、并把成对的数据点用线条(line)连接起来、自定义配置线条颜色(Connecting Paired Points with lines)

    R语言ggplot2可视化基本散点图(设置X轴使用对数坐标).并把成对的数据点用线条(line)连接起来.自定义配置线条颜色(Customizing Scatterplot Connecting Pa ...

  8. Matplotlib可视化散点图、配置X轴为对数坐标、并使用线条(line)连接散点图中的数据点(Simple Line Plot with Data points in Matplotlib)

    Matplotlib可视化散点图.配置X轴为对数坐标.并使用线条(line)连接散点图中的数据点(Simple Line Plot with Data points in Matplotlib) 目录

  9. R语言ggplot2可视化散点图并使用scale_y_log10函数配置Y轴对数坐标、使用ggforce包的facet_zoom函数将可视化结果中需要突出放大的区域进行放大(Zoom in)

    R语言ggplot2可视化散点图并使用scale_y_log10函数配置Y轴对数坐标.使用ggforce包的facet_zoom函数将可视化结果中需要突出放大的区域进行放大(Zoom in) 目录

  10. R语言ggplot2可视化:ggplot2可视化密度图(显示数据密集区域)、ggplot2可视化密度图(对数坐标):log10比例的收入密度图突出了在常规密度图中很难看到的收入分布细节

    R语言ggplot2可视化:ggplot2可视化密度图(显示数据密集区域).ggplot2可视化密度图(对数坐标):log10比例的收入密度图突出了在常规密度图中很难看到的收入分布细节 目录

最新文章

  1. python3.8安装tensorflow1.14时候报错Can‘t connect to HTTPS URL because the SSL module is not available
  2. Python 或将成为法国高中的官方编程教学语言
  3. Spring学习五(JDBC支持)
  4. log4j详解与实战
  5. 【技术解决方案】Windows平台下摄像头采集方案
  6. 分布式是写出来的(二)
  7. 【IE】IE对line-height 失效的的解决方案
  8. wireshark_Couldn’t run /usr/sbin/dumpcap in child process: Permission denied
  9. 在SqlMapConfig.xml 中typeAliases与properties的关系
  10. html 如何引入一个公共的头部和底部
  11. vue中this.$set的用法
  12. 完美破解nbsp;iPhone“一键解锁”新手教程
  13. 在线聊天静态网页模板html Demo
  14. 刘徽与《九章算术》《海岛算经》简介
  15. 自动驾驶中的多种卡尔曼滤波算法及推导详解,值得一读!
  16. 如何用移动硬盘备份计算机,移动硬盘妙用 教你安装备份Win7系统
  17. 液晶显示屏模组工艺流程是什么,液晶显示模组生产流程的意义
  18. 视频压缩【亲测可用】
  19. linux里nohup用法,小飞博客-Linux nohup用法
  20. 汽车UDS诊断之通过标识符写入数据服务(0x2E)深度剖析

热门文章

  1. Matlab更改工作路径的方法及思考
  2. Java Word工具类--之Gradle项目创建
  3. 在线字节转换工具G,M,Byte
  4. 2017会考计算机知识点,【高考备考】2017高二化学会考知识点汇总高中化学会考知识点...
  5. 幼儿抽象逻辑思维举例_3-6岁,抓住幼儿思维发展关键期,培养孩子逻辑思维能力...
  6. 怎么白嫖一部好手机?我来告诉你
  7. LIF-Seg 激光雷达与相机图像融合的三维激光雷达语义分割
  8. loadlibrary函数失败,错误码:126
  9. 英语语法之简单句型(一)
  10. 家用wifi的配置和重置