对于一个情节,如附图所示,有没有办法引入双类别轴?也可以看到一个(绘制得很差)的例子。
理想情况下,报告应该是自动生成的,因此设置静态日期名称并不理想。
编辑:我还应该提一下,每天小时重新开始,0-24,0-24,0-24等等会很棒
答案 0 :(得分:2)
不确定这些日子,但我有一个小时的建议。想象一下:
hours = 0:70;
data=rand(size(hours));
plot(hours,data,'*')
xlabel('Hours of day')
这给出了以下图:
现在您需要编辑x轴使用的标签。这是实现它的一种方法(不一定是最优雅的,因为你正在处理单元数组并且必须在字符串和数值数据类型之间来回转换,但它似乎有效,至少在Octave中):
temp = get(gca,'xticklabel');
for k=1:length(temp)
temp{k} = num2str(mod(str2num(temp{k}),24));
end
set(gca,'xticklabel',temp)
其中给出了以下图表:
祝你好运加上下面的日子!! (可能以聪明的方式使用text
命令)
答案 1 :(得分:2)
这是一种使用文本注释的非常自定义的方式。您可能需要添加一些小的更改以适合您的数据。
clc
clear
x = 1:80;
HourValues = repmat([0 10 20],1,3);
DaysString = {'Mon' 'Tue' 'Wed'};
NumDays = numel(DaysString);
plot(x,rand(1,80))
set(gca,'XTickLabel',HourValues) % Set xtick labels
xlimit = get(gca,'XLim'); % Get x and y- limits
ylimit = get(gca,'YLim');
% May need some adaptation to fit your data
for k = 1:NumDays
text((NumDays*k-2)*10,ylimit(1)-.06,DaysString{k},'FontSize',14,'HorizontalAlignment','Center')
end
text(xlimit(2)/2,ylimit(1)-0.1,'Hour of day','FontSize',16,'HorizontalAlignment','Center')
给出这样的东西: