图表显示站点之间的出发和到达时间

时间:2017-06-06 08:46:36

标签: vba matlab excel-vba graph nodes

我有一个公共汽车行程的开始和结束时间,时间在Excel表格中。我想制作如下图:

Figure

我尝试使用Matlab节点和图形,但没有得到确切的数字,下面是我试过的Matlab代码示例:

A = [1 4] 
B = [2 3]
weights = [5 5];
G = digraph(A,B,weights,4)
plot(G)

它产生的数字:

fig

我在Excel表格中有超过4个点,我希望它们都显示在第一张图片中。

1 个答案:

答案 0 :(得分:0)

概述

您不需要任何复杂的图形包,只需使用普通线图!以下是Excel和Matlab中的方法。

Excel中

给每个公共汽车站一个号码,并在到达/离开那里时列出公共汽车站号码。我将在本例中使用0号和1号停靠点。

datetime

然后只需突出显示数据并使用直线插入"散布"

scatter

其余的是格式化。您可以格式化y轴并以相反的顺序勾选"值"按照你想要的情节来增加时间。您可以更改x轴刻度线以仅显示整数停止数字,删除图例等。

最终输出:

Excel output

Matlab的

以下是将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);

        }

输出:

bus routes