我有一个公共汽车行程的开始和结束时间,时间在Excel表格中。我想制作如下图:
我尝试使用Matlab节点和图形,但没有得到确切的数字,下面是我试过的Matlab代码示例:
A = [1 4]
B = [2 3]
weights = [5 5];
G = digraph(A,B,weights,4)
plot(G)
它产生的数字:
我在Excel表格中有超过4个点,我希望它们都显示在第一张图片中。
答案 0 :(得分:0)
您不需要任何复杂的图形包,只需使用普通线图!以下是Excel和Matlab中的方法。
给每个公共汽车站一个号码,并在到达/离开那里时列出公共汽车站号码。我将在本例中使用0号和1号停靠点。
datetime
然后只需突出显示数据并使用直线插入"散布"
其余的是格式化。您可以格式化y轴并以相反的顺序勾选"值"按照你想要的情节来增加时间。您可以更改x轴刻度线以仅显示整数停止数字,删除图例等。
最终输出:
以下是将Excel格式的日期转换为Matlab datetime
数组的Matlab文档:Convert Excel Date Number to Datetime。
获得plot
个对象后,您可以使用标准% Set times up as a datetime array, could do this any number of ways
times = datetime(strcat({'1/1/2000 '}, {'04:41', '05:35', '05:40', '06:34', '06:51', '07:45', '15:21', '16:15'}, ':00'), 'format', 'dd/MM/yyyy HH:mm:ss');
% Set up the location of the bus at each of the above times
station = [0,1,1,0,0,1,1,0];
% Plot
plot(station, times) % Create plot
set(gca, 'xtick', [0,1]) % Limit to just ticks at the 2 stops
set(gca, 'ydir', 'reverse') % Reverse y axis to have earlier at top
set(gca,'XTickLabel',{'R', 'L'}) % Name the stops
函数轻松完成此操作。
var MainInfo=[];
for (i = 0; i < data.length; i++) {
var obj = {}
obj.BuildingID = data[i].BuildingID;
obj.FloorId = data[i].FloorId;
obj.one = data[i].volume[0].one;
obj.three = data[i].volume[0].three;
obj.two = data[i].volume[0].two;
MainInfo.push(obj);
}
输出: