Exemple #1
0
        //呼吸のデータを折れ線グラフに表示する
        void SetBreathDataToLineGraph(List <Data> breathDataList)
        {
            List <Vector2> valueList = new List <Vector2>();

            for (int i = 0; i < breathDataList.Count; i++)
            {
                float xValueRate = Graph.Time.GetPositionRate(breathDataList[i].GetTime().Value, breathDataList.First().GetTime().Value, breathDataList.Last().GetTime().Value);
            }
            Output_Line.lineColor = lineColor;
            Output_Line.SetPointValues(valueList);
            //グラフの時間軸も合わせて設定
            List <System.DateTime> timeList = breathDataList.Select(ibikiData => ibikiData.GetTime().Value).ToList();

            Output_TimeLabel.SetAxis(timeList);
        }
Exemple #2
0
        //いびきの大きさのデータを折れ線グラフに設定する
        void SetIbikiDataToLineGraph(List <Data> ibikiDataList)
        {
            List <Vector2> valueList = new List <Vector2>();

            for (int i = 0; i < ibikiDataList.Count; i++)
            {
                System.DateTime detectionStartTime = ibikiDataList.First().GetTime().Value;
                System.DateTime detectionEndTime   = ibikiDataList.Last().GetTime().Value.AddSeconds(20);

                // いびきの大きさ1の打点位置のx座標
                float xValueRate1 = Graph.Time.GetPositionRate(
                    ibikiDataList[i].GetTime().Value,
                    detectionStartTime,
                    detectionEndTime);
                // いびきの大きさ2の打点位置のx座標
                float xValueRate2 = Graph.Time.GetPositionRate(
                    ibikiDataList[i].GetTime().Value.AddSeconds(10),
                    detectionStartTime,
                    detectionEndTime);
                // いびきの大きさ3の打点位置のx座標
                float xValueRate3 = Graph.Time.GetPositionRate(
                    ibikiDataList[i].GetTime().Value.AddSeconds(20),
                    detectionStartTime,
                    detectionEndTime);

                valueList.Add(new Vector2(
                                  xValueRate1, ibikiDataList[i].SnoreVolume1));
                valueList.Add(new Vector2(
                                  xValueRate2, ibikiDataList[i].SnoreVolume2));
                valueList.Add(new Vector2(
                                  xValueRate3, ibikiDataList[i].SnoreVolume3));
            }

            Output_Line.lineColor = lineColor;
            Output_Line.SetPointValues(valueList);
            //グラフの時間軸も合わせて設定
            List <System.DateTime> timeList
                = ibikiDataList.Select(
                      ibikiData => ibikiData.GetTime().Value).ToList();

            Output_TimeLabel.SetAxis(timeList);
        }
        //いびきの大きさのデータを折れ線グラフに設定する
        void SetIbikiDataToLineGraph(List <Data> ibikiDataList)
        {
            RemoveIbikiDataFromLineGraph();             //折れ線グラフ初期化
            List <Vector2> valueList       = new List <Vector2>();
            float          xValueTotalRate = 0.0f;
            float          yValueTotalRate = 0.0f;
            float          MAX_Y_VALUE     = 0.8f;

            for (int i = 0; i < ibikiDataList.Count; i++)
            {
                System.DateTime detectionStartTime = ibikiDataList.First().GetTime().Value;
                System.DateTime detectionEndTime   = ibikiDataList.Last().GetTime().Value.AddSeconds(20);

                // いびきの大きさ1の打点位置のx座標
                float xValueRate1 = Graph.Time.GetPositionRate(
                    ibikiDataList[i].GetTime().Value,
                    detectionStartTime,
                    detectionEndTime);
                // いびきの大きさ2の打点位置のx座標
                float xValueRate2 = Graph.Time.GetPositionRate(
                    ibikiDataList[i].GetTime().Value.AddSeconds(10),
                    detectionStartTime,
                    detectionEndTime);
                // いびきの大きさ3の打点位置のx座標
                float xValueRate3 = Graph.Time.GetPositionRate(
                    ibikiDataList[i].GetTime().Value.AddSeconds(20),
                    detectionStartTime,
                    detectionEndTime);

                // 6つの点の平均値の1点を加える
                if (i % 2 == 0)
                {
                    // 6つの点の内、最初の3点の情報を保持
                    xValueTotalRate = xValueRate1 + xValueRate2 + xValueRate3;
                    yValueTotalRate = ibikiDataList[i].SnoreVolume1 + ibikiDataList[i].SnoreVolume2 + ibikiDataList[i].SnoreVolume3;
                    // 最後が3点だけだった場合は、その3点の平均値を
                    if (i == ibikiDataList.Count + 1)
                    {
                        float aveXValueRate = xValueTotalRate / 3.0f;
                        float aveYValueRate = yValueTotalRate / 3.0f;

                        aveYValueRate *= 2; //200単位(最大値800)を100単位にして最大値を400にする
                        if (aveYValueRate > MAX_Y_VALUE)
                        {
                            aveYValueRate = MAX_Y_VALUE;
                        }

                        valueList.Add(new Vector2(aveXValueRate, aveYValueRate));
                    }
                }
                else
                {
                    // 前に保持した3点と今回取得した3点の合計6点の平均値の1点を加える
                    float aveXValueRate = (xValueTotalRate + xValueRate1 + xValueRate2 + xValueRate3) / 6.0f;
                    float aveYValueRate = (yValueTotalRate + ibikiDataList[i].SnoreVolume1 + ibikiDataList[i].SnoreVolume2 + ibikiDataList[i].SnoreVolume3) / 6.0f;

                    aveYValueRate *= 2; //200単位(最大値800)を100単位にして最大値を400にする
                    if (aveYValueRate > MAX_Y_VALUE)
                    {
                        aveYValueRate = MAX_Y_VALUE;
                    }

                    valueList.Add(new Vector2(aveXValueRate, aveYValueRate));
                }

                // valueList.Add(new Vector2(xValueRate2, ibikiDataList[i].SnoreVolume2));
                // valueList.Add(new Vector2(xValueRate3, ibikiDataList[i].SnoreVolume3));
            }

            Output_Line.lineColor = lineColor;
            Output_Line.SetPointValues(valueList);
            //グラフの時間軸も合わせて設定
            ibikiTimeList
                = ibikiDataList.Select(
                      ibikiData => ibikiData.GetTime().Value).ToList();
            if (scrollFlag)
            {
                Output_TimeLabel.SetIbikiAxis(ibikiTimeList);
            }
            else
            {
                Output_TimeLabel.SetIbikiMinAxis(ibikiTimeList);
            }
        }