- 积分
- 83
- 注册时间
- 2003-11-14
- 仿真币
-
- 最后登录
- 1970-1-1
|
见某论坛曾有人提过此问题,采用的是x|yminortick选项打开的方法,但是DIY性质不足,而且只有一种方向选择,就是随着主刻度in或者out。这里我解决一下,采用自己定制的方式:- %% 特殊的坐标轴刻度
- clc;close all;
- x=linspace(0,7);
- y=sin(cos(x.^2));
- plot(x,y)
- tickx=get(gca,'xlim')
- ticky=get(gca,'ylim')
- hold on
- for i=tickx(1):.1:tickx(end)
- plot([i,i],[ticky(1),ticky(1)+.02],'color','k')
- end
- for j=ticky(1):.05:ticky(end)
- plot([tickx(1),tickx(1)+.05],[j,j],'color','k')
- end
- Pos=get(gca,'position');
- annotation('arrow',[Pos(1),Pos(1)],[Pos(2)+Pos(4)-.02,Pos(2)+Pos(4)+.03],'linewidth',.7);
- annotation('arrow',[Pos(1)+Pos(3)-.02,Pos(1)+Pos(3)+.03],[Pos(2),Pos(2)]);
- data=[x',y'];
复制代码 图形:
第二种利用latex中的tikz宏包:- \begin{figure}[!htb]
- \begin{center}
- \begin{tikzpicture}[thin,>=stealth,scale=1]
- \draw[->] (0,0) -- (7.5,0) node[right] {$x$};
- \draw[->] (0,-1.2) -- (0,1.2) node[above] {$y$};
- \draw plot file {D:/2.txt};%将MATLAB得到的数据保存成2.txt,每个坐标值x、y之间空格即可
- \foreach \x in{.1,.2,...,7}
- \draw(\x,0)--++(0,.05);
- \foreach \x in{1,2,...,7}
- \draw(\x,0)--++(0,.1)node[below]{\tiny{$\x$}};
- \foreach \y in{-1.1,-1,...,1.1}
- \draw(0,\y)--++(-.05,0);
- \foreach \y in{-1,-.5,...,1}
- \draw(0,\y)--++(-.1,0)node[left]{\tiny{$\y$}};
- \end{tikzpicture}
- \caption{\tiny{\LaTeXe 中$pgf/tikz$宏包绘制的二维曲线图}}
- \end{center}
- \end{figure}
复制代码 图形:
必须说明:
1.方法1中的箭头还是有缺陷的,但是在MATLAB中,个人认为基本也只能如此,难以质变了,但是结合latex,图形就很风骚了。相比之下,好像一个是NBA的现场老美解说,一个是意识流之父韩乔生韩爷爷;一个是没化妆的小燕子,一个是《单车》里的高圆圆。看起来都是人,可天上地下啊:'(
2.请不要发贴问latex哪里下载——我家里穷,没有google,所以我拿锯子榔头铁锨自己做的:victory: ;请不要把代码2傻乎乎往MATLAB中copy,这不是一个软件的内容,如何使用具体请参考ctex中关于pgf宏包的说明。
[ 本帖最后由 bainhome 于 2008-8-17 20:02 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
评分
-
1
查看全部评分
-
|