计算化学公社

标题: matlab画图时如何令y轴的前面一部分是对数坐标后面一部分为线性坐标? [打印本页]

作者
Author:
Theor_Comp    时间: 2018-10-25 20:24
标题: matlab画图时如何令y轴的前面一部分是对数坐标后面一部分为线性坐标?
请教大家,使用Matlab如何画出一个图,使得其y轴的前面一部分是对数坐标,而y轴的后面一部分为线性坐标?谢谢大家!

作者
Author:
sobereva    时间: 2018-10-25 21:20
注意求助帖应当在帖子标题明确体现出提问、求助(见http://bbs.keinsci.com/thread-9348-1-1.html),给你改了,望以后注意
作者
Author:
meatball1982    时间: 2018-10-26 09:22
本帖最后由 meatball1982 于 2018-10-26 10:41 编辑

一个可能的实现方式,只说思路啊。用两个子图拼起来,一个画线性的,一个画对数的。
将其中一个的x轴设置为空,color为白色。
box off
我用的例子是y=exp(3*x)。
x=linspace(0.1,2,200)
在第150个点将两组数分开。一个用plot画,一个用semilogy画





作者
Author:
Theor_Comp    时间: 2018-10-26 10:13
meatball1982 发表于 2018-10-26 09:22
一个可能的实现方式,只说思路啊。用两个子图拼起来,一个画线性的,一个画对数的。
将其中一个的x轴设置 ...

您好!我是用自己建的画图函数createfigure画图的,请问如何将两个图拼起来呢?多谢了
作者
Author:
meatball1982    时间: 2018-10-26 10:44
Theor_Comp 发表于 2018-10-26 10:13
您好!我是用自己建的画图函数createfigure画图的,请问如何将两个图拼起来呢?多谢了

那你的createfigure里,能不能定义在一个figure 的哪个位置画呢。

比如:
  1. ax=axes('position',[0.1 0.5 0.7 0.4]);
  2. plot .......

  3. ax=axes('position',[0.1 0.2 0.7 0.3]);
  4. 又一次,plot *****
复制代码

作者
Author:
Theor_Comp    时间: 2018-10-26 12:06
meatball1982 发表于 2018-10-26 10:44
那你的createfigure里,能不能定义在一个figure 的哪个位置画呢。

比如:

谢谢。我试过了,可以。但是如何隐藏其中一个的x轴呀,否则有两个x轴?
作者
Author:
Theor_Comp    时间: 2018-10-26 12:06
sobereva 发表于 2018-10-25 21:20
注意求助帖应当在帖子标题明确体现出提问、求助(见http://bbs.keinsci.com/thread-9348-1-1.html),给你 ...

好的,多谢!
作者
Author:
meatball1982    时间: 2018-10-26 13:27
Theor_Comp 发表于 2018-10-26 12:06
谢谢。我试过了,可以。但是如何隐藏其中一个的x轴呀,否则有两个x轴?

不显示box
设置xtick是空的,把线以白色显示。

  1. box off
  2. set(gca,'xtick',[],'xcolor',[1 1 1])
复制代码






欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3