计算化学公社

 找回密码 Forget password
 注册 Register
Views: 3660|回复 Reply: 7
打印 Print 上一主题 Last thread 下一主题 Next thread

[Matlab/Maple/Mathematica] matlab画图时如何令y轴的前面一部分是对数坐标后面一部分为线性坐标?

[复制链接 Copy URL]

195

帖子

0

威望

699

eV
积分
894

Level 4 (黑子)

请教大家,使用Matlab如何画出一个图,使得其y轴的前面一部分是对数坐标,而y轴的后面一部分为线性坐标?谢谢大家!

5万

帖子

99

威望

5万

eV
积分
112353

管理员

公社社长

2#
发表于 Post on 2018-10-25 21:20:51 | 只看该作者 Only view this author
注意求助帖应当在帖子标题明确体现出提问、求助(见http://bbs.keinsci.com/thread-9348-1-1.html),给你改了,望以后注意
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

130

帖子

0

威望

1056

eV
积分
1186

Level 4 (黑子)

3#
发表于 Post on 2018-10-26 09:22:48 | 只看该作者 Only view this author
本帖最后由 meatball1982 于 2018-10-26 10:41 编辑

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




fig_plot.png (11.12 KB, 下载次数 Times of downloads: 66)

fig_plot.png

fig_split_plot.png (17.59 KB, 下载次数 Times of downloads: 70)

fig_split_plot.png

195

帖子

0

威望

699

eV
积分
894

Level 4 (黑子)

4#
 楼主 Author| 发表于 Post on 2018-10-26 10:13:44 | 只看该作者 Only view this author
meatball1982 发表于 2018-10-26 09:22
一个可能的实现方式,只说思路啊。用两个子图拼起来,一个画线性的,一个画对数的。
将其中一个的x轴设置 ...

您好!我是用自己建的画图函数createfigure画图的,请问如何将两个图拼起来呢?多谢了

130

帖子

0

威望

1056

eV
积分
1186

Level 4 (黑子)

5#
发表于 Post on 2018-10-26 10:44:38 | 只看该作者 Only view this author
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 *****
复制代码

195

帖子

0

威望

699

eV
积分
894

Level 4 (黑子)

6#
 楼主 Author| 发表于 Post on 2018-10-26 12:06:36 | 只看该作者 Only view this author
meatball1982 发表于 2018-10-26 10:44
那你的createfigure里,能不能定义在一个figure 的哪个位置画呢。

比如:

谢谢。我试过了,可以。但是如何隐藏其中一个的x轴呀,否则有两个x轴?

195

帖子

0

威望

699

eV
积分
894

Level 4 (黑子)

7#
 楼主 Author| 发表于 Post on 2018-10-26 12:06:53 | 只看该作者 Only view this author
sobereva 发表于 2018-10-25 21:20
注意求助帖应当在帖子标题明确体现出提问、求助(见http://bbs.keinsci.com/thread-9348-1-1.html),给你 ...

好的,多谢!

130

帖子

0

威望

1056

eV
积分
1186

Level 4 (黑子)

8#
发表于 Post on 2018-10-26 13:27:51 | 只看该作者 Only view this author
Theor_Comp 发表于 2018-10-26 12:06
谢谢。我试过了,可以。但是如何隐藏其中一个的x轴呀,否则有两个x轴?

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

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

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 18:55 , Processed in 0.206576 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list