别人的一个问题,相当的麻烦,也是,太容易的话,徐已经可以搞定了。一个论文的编辑要把纵轴的'-'号变长。我倒。
于是,通过text 函数和latex重写了一次yticklabel。并通过
'--'和'---'设置负号的长度。
- clear all
- clc
- clf
- data1=[10 25 -13 85 35 16];
- data_x =[-3 -1 0 1 2 5];
- data1=-data1;
- h=figure(1)
- set(h, 'Position', [1000, 100, 400 400]);
- plot(data_x,data1)
- % axis tight
- ax=gca;
- ax_p=axis;
- y_mm=ax.YTick;
- y_str=ax.YTickLabel;
- x_mm=ax.XTick;
- x_str=ax.XTickLabel;
- set(ax,'yticklabel',[])
- set(ax,'xticklabel',[])
- hold on
- xoffset = 0.1;
- yoffset = 5;
- mm_fs=16;
- for i=1:length(x_mm)
- if x_mm(i)<0
- tm=x_str(i);
- tm2=tm{1};
- str_mm=['\textbf{--}',tm2(2:end)];
- t=text(x_mm(i),ax_p(3)- yoffset,str_mm,'Interpreter','latex','fontsize',mm_fs);
-
- else
- t=text(x_mm(i),ax_p(3)- yoffset,mat2str(x_mm(i)),'Interpreter','latex','fontsize',mm_fs);
- end
- t.HorizontalAlignment='center';
-
- end
- %
- for i=1:length(y_mm)
- if y_mm(i)<0
- tm=y_str(i);
- tm2=tm{1};
- str_mm=['---',tm2(2:end)];
- t=text(ax_p(1) - xoffset,y_mm(i),str_mm,'Interpreter','latex','fontsize',mm_fs);
- t.HorizontalAlignment='right';
- else
- t=text(ax_p(1) - xoffset,y_mm(i),mat2str(y_mm(i)),...
- 'Interpreter','latex','fontsize',mm_fs);
- t.HorizontalAlignment='right';
- end
- end
- t=text(-2,-30,'-10','Interpreter','latex','fontsize',mm_fs)
- t.HorizontalAlignment='right';
- t=text(-2,-40,'--10','Interpreter','latex','fontsize',mm_fs)
- t.HorizontalAlignment='right';
- t=text(-2,-50,'\textbf{--}10','Interpreter','latex','fontsize',mm_fs)
- t.HorizontalAlignment='right';
- t=text(-2,-60,'---10','Interpreter','latex','fontsize',mm_fs)
- t.HorizontalAlignment='right';
- t=text(-2,-70,'\textbf{---}10','Interpreter','latex','fontsize',mm_fs)
- t.HorizontalAlignment='right';
- h=gcf;
- fig_na=['./fig_length_min'];
- fun_work_li_035_myfig_out(h,fig_na,3)
- % print 'fig_min_leng.png' '-dpng'
- % plot(data1)
- % t = title('hi')
- % set(t, 'horizontalAlignment', 'right')
- % set(t, 'units', 'normalized')
- % h1 = get(t, 'position')
- % set(t, 'position', [1 h1(2) h1(3)])
复制代码
|