我正在绘制随机数据与日期时间字符串的图表。这些日期时间字符串都在一行中,并作为横轴上的标签。我希望日期显示在一行中,时间显示在另一行中。
下图描述了我的图表。我希望时间显示在日期之下。
我用来生成图表的代码如下所示:
figure
plot(sample(:,1),sample(:,2:5),'o')
tick=get(gca,'xtick');
set(gca,'xticklabel',datestr(tick,31))
drawnow()
如何让每个水平标签的时间显示在日期下方?
答案 0 :(得分:0)
这有点像黑客,但你可以在日期和时间的空格之间的日期字符串中引入TeX命令\newline
,然后将这些新字符串设置为{{1}勾选图中的标签。您需要将从X
输出的字符数组转换为cellstr
的字符串单元格数组,然后使用strrep
执行从空格到datestr
的替换}。
这样的事情应该有效:
\newline
当我使用样本图表时:
figure
plot(sample(:,1),sample(:,2:5),'o')
tick=get(gca,'xtick');
vals = cellstr(datestr(tick,31)); %// Change
new_vals = strrep(vals, ' ', '\newline'); %// New
set(gca,'xticklabel',new_vals); %// Change
drawnow()
运行代码后,我将此作为最终结果:
请注意,这假设plot(1:6, 1:6, 'r.');
刻度线彼此间隔足够大。如果水平轴上有许多刻度,那么你的绘图看起来会很混乱。