private void Awake() { instance = this; graphContainer = transform.Find("graphContainer").GetComponent <RectTransform>(); labelTemplateX = graphContainer.Find("labelTemplateX").GetComponent <RectTransform>(); lableTemplateY = graphContainer.Find("labelTemplateY").GetComponent <RectTransform>(); dashTemplateX = graphContainer.Find("dashTemplateX").GetComponent <RectTransform>(); dashTemplateY = graphContainer.Find("dashTemplateY").GetComponent <RectTransform>(); tooltipGameObject = graphContainer.Find("ToolTip").gameObject; gameObjectList = new List <GameObject>(); yLabelList = new List <RectTransform>(); graphVisualObjectList = new List <IGraphVisualObject>(); //List<int> valueList = new List<int>() { 5, 98, 56, 45, 30, 22, 17, 15, 13, 17, 25, 37, 40, 36, 33,60,54,22,67,98,34,25,2,7,87 }; IGraphVisual lineGraphVisual = new LineGraphVisual(graphContainer, dot, Color.green, Color.white); IGraphVisual barGraphVisual = new BarChartVisual(graphContainer, Color.green, 0.8f); transform.Find("barGraphButton").GetComponent <Button>().onClick.AddListener(() => SetGraphVisual(barGraphVisual)); transform.Find("LineGraphButton").GetComponent <Button>().onClick.AddListener(() => SetGraphVisual(lineGraphVisual)); transform.Find("increaseVisibleButton").GetComponent <Button>().onClick.AddListener(() => IncreaseGraphVisual()); transform.Find("decreaseVisibleButton").GetComponent <Button>().onClick.AddListener(() => DecreaseGraphVisual()); transform.Find("DollarYlabelButton").GetComponent <Button>().onClick.AddListener(() => SetGetAxisLabelY((float _f) => "$" + Mathf.RoundToInt(_f))); transform.Find("EuroYlabelButton").GetComponent <Button>().onClick.AddListener(() => SetGetAxisLabelY((float _f) => "€" + Mathf.RoundToInt(_f / 1.18f))); HideToolTip(); //ShowGraph(valueList, barGraphVisual, -1, (int _i) => "Day" + (_i + 1), (float _f) => "$" + Mathf.RoundToInt(_f)); }
private void Awake() { instance = this; graphVisuals[0] = new LineGraphVisual(graphContainer, dotSprite, Color.blue, Color.gray); graphVisuals[1] = new BarGraphVisual(graphContainer, Color.blue, 0.7f); toolTipTxt = toolTip.GetComponentInChildren <Text>(); toolTipRect = toolTip.GetComponent <RectTransform>(); }
IEnumerator ChangeData() { IGraphVisual lineGraphVisual = new LineGraphVisual(graphContainer, dotSprite, new Color32(85, 165, 255, 255), new Color32(85, 165, 255, 100)); IGraphVisual barChartVisual = new BarChartVisual(graphContainer, new Color32(85, 165, 255, 255), .8f); WWWForm form = new WWWForm(); string starttime = startRange.text; string endtime = endRange.text; form.AddField("starttime", starttime); form.AddField("endtime", endtime); WWW getNewTimes = new WWW("http://localhost:81/percentsdata/getNewTimes.php", form); yield return(getNewTimes); string[] newtimes = getNewTimes.text.Split(';'); List <int> newList = new List <int>(); int numrows = int.Parse(newtimes[0]); bool skipFirst = false; foreach (string str in newtimes) { if (skipFirst) { int mins = (Int32.Parse(str)) / 60 / 60; newList.Add(mins); } skipFirst = true; } WWW getNewTags = new WWW("http://localhost:81/percentsdata/getNewTags.php", form); yield return(getNewTags); //string tagsDataString = tagsData.text; string[] nameArray = getNewTags.text.Split(';'); int num = Int32.Parse(nameArray[0]); string[] names = new string[num]; Array.Copy(nameArray, 1, names, 0, num); HideSearchPanel(); ShowGraph(newList, barChartVisual, -1, (int _i) => names[(_i)], (float _f) => Mathf.RoundToInt(_f) + " hrs"); //Debug.Log("text!!" + starttime); string DisplayInfo = starttime + " to " + endtime; UpdateDisplayPanel(DisplayInfo); }
private void Start() { // Set Up graphVisual objects to use by Show Graph Method. IGraphVisual lineChartVisual = new LineGraphVisual(graphContainer, graphDotSprite, Color.white); lineGraphVisual = lineChartVisual; IGraphVisual barChartVisual = new BarChartVisual(graphContainer, colourOfBars); barGraphVisual = barChartVisual; graphGameObjectList = new List <GameObject>(); }
private void PlotInvestments() { plot2.Clear(); plot3.Clear(); index = 0; Finances finances = GameController.instance.player.finances; if (finances.investments.Count == 0 || finances.dates.Count == 0) { return; } LineGraphVisual lineVisual = new LineGraphVisual(containers[1], dotSprite, 12, true, Color.green, Color.white); LineGraphVisual bankruptVisual = new LineGraphVisual(containers[1], dotSprite, 12, false, Color.red, Color.red); List <float> extrems = plot2.ShowPlot(finances.investments, lineVisual, 12, containers[1], 0, 0, (int i) => finances.dates[i].month.ToString().Substring(0, 3), (float f) => String.Format("{0:n0} $", Mathf.RoundToInt(f))); List <int> bankruptStates = new List <int>(); for (int i = 0; i < 12; i++) { bankruptStates.Add(finances.bankruptState); } plot2.ShowPlot(bankruptStates, bankruptVisual, -1, containers[1], extrems[0], extrems[1], displayGrid: false); // build plot in years LineGraphVisual yearLineVisual = new LineGraphVisual(containers[2], dotSprite, 12, true, Color.yellow, Color.green); List <int> yearData = new List <int>(); List <int> years = new List <int>(); while (index < finances.investments.Count) { int sum = 0; for (int i = index; i < index + 12; i++) { if (i >= finances.investments.Count) { break; } sum += finances.investments[i]; } sum /= 12; yearData.Add(sum); years.Add(finances.dates[index].year); index += 12; } plot3.ShowPlot(yearData, yearLineVisual, 12, containers[2], 0, 0, (int i) => years[i].ToString(), (float f) => String.Format("{0:n0} $", Mathf.RoundToInt(f))); }
public void SetGraphVisual(string graphVisual) { IGraphVisual lineGraphVisual = new LineGraphVisual(graphContainer, dot, Color.green, Color.white); IGraphVisual barGraphVisual = new BarChartVisual(graphContainer, Color.green, 0.8f); if (graphVisual == "barGraphVisual") { ShowGraph(this.valueList, barGraphVisual, this.maxVisibleValueAmount, this.getAxisLabelX, this.getAxisLabelY); } else { ShowGraph(this.valueList, lineGraphVisual, this.maxVisibleValueAmount, this.getAxisLabelX, this.getAxisLabelY); } }
private void Awake() { instance = this; // Grab base objects references graphContainer = transform.Find("graphContainer").GetComponent <RectTransform>(); labelTemplateY = graphContainer.Find("labelTemplateY").GetComponent <RectTransform>(); startYScaleAtZero = true; gameObjectList = new List <GameObject>(); yLabelList = new List <RectTransform>(); graphVisualObjectList = new List <IGraphVisualObject>(); IGraphVisual lineGraphVisual = new LineGraphVisual(graphContainer, dotSprite, Color.green, new Color(1, 1, 1, .5f)); // Set up base values List <int> valueList = new List <int>() { 0, 0 }; ShowGraph(valueList, lineGraphVisual, -1, (int _i) => "Day " + (_i + 1), (float _f) => Mathf.RoundToInt(_f).ToString()); /* * // Automatically modify graph values and visual * bool useBarChart = true; * FunctionPeriodic.Create(() => { * for (int i = 0; i < valueList.Count; i++) { * valueList[i] = Mathf.RoundToInt(valueList[i] * UnityEngine.Random.Range(0.8f, 1.2f)); * if (valueList[i] < 0) valueList[i] = 0; * } * if (useBarChart) { * ShowGraph(valueList, barChartVisual, -1, (int _i) => "Day " + (_i + 1), (float _f) => "$" + Mathf.RoundToInt(_f)); * } else { * ShowGraph(valueList, lineGraphVisual, -1, (int _i) => "Day " + (_i + 1), (float _f) => "$" + Mathf.RoundToInt(_f)); * } * useBarChart = !useBarChart; * }, .5f); * //*/ int index = 0; FunctionPeriodic.Create(() => { //int index = UnityEngine.Random.Range(0, valueList.Count); //UpdateValue(index, valueList[index] + UnityEngine.Random.Range(1, 3)); addValue(GameLogic.instance.infectedCount); ShowGraph(valueList, lineGraphVisual, valueList.Count, (int _i) => "Day " + (_i + 1), (float _f) => Mathf.RoundToInt(_f).ToString()); }, 10f); }
private void HandleReferences(out IGraphVisual lineGraphVisual, out IGraphVisual barChartVisual) { statisticsManager = GameObject.FindObjectOfType <StatisticsManager> (); // Grab base objects references graphContainer = transform.Find("graphContainer").GetComponent <RectTransform> (); labelTemplateX = graphContainer.Find("labelTemplateX").GetComponent <RectTransform> (); labelTemplateY = graphContainer.Find("labelTemplateY").GetComponent <RectTransform> (); dashContainer = graphContainer.Find("dashContainer").GetComponent <RectTransform> (); dashTemplateX = dashContainer.Find("dashTemplateX").GetComponent <RectTransform> (); dashTemplateY = dashContainer.Find("dashTemplateY").GetComponent <RectTransform> (); tooltipGameObject = graphContainer.Find("tooltip").gameObject; startYScaleAtZero = true; gameObjectList = new List <GameObject> (); yLabelList = new List <RectTransform> (); graphVisualObjectList = new List <IGraphVisualObject> (); lineGraphVisual = new LineGraphVisual(graphContainer, dotSprite, Color.green, new Color(1, 1, 1, .5f)); barChartVisual = new BarChartVisual(graphContainer, Color.white, .8f); }
private void Awake() { instace = this; graphContainer = transform.Find("graphContainer").GetComponent <RectTransform>(); labelTemplateX = graphContainer.Find("xAxis").GetComponent <RectTransform>(); labelTemplateY = graphContainer.Find("yAxis").GetComponent <RectTransform>(); dashTemplateX = graphContainer.Find("xDash").GetComponent <RectTransform>(); dashTemplateY = graphContainer.Find("yDash").GetComponent <RectTransform>(); tooltipGameObject = graphContainer.Find("tooltip").gameObject; gameObjectList = new List <GameObject>(); graphVisualObjectlist = new List <IGraphVisualObject>(); IGraphVisual lineGraphVisual = new LineGraphVisual(graphContainer, dotSprite, Color.white, new Color(1, 1, 1, .5f)); IGraphVisual barChartVisual = new BarChartVisual(graphContainer, Color.white, .8f); transform.Find("barChartBtn").GetComponent <Button_UI>().ClickFunc = () => { SetGraphVisual(barChartVisual); }; transform.Find("lineGraphBtn").GetComponent <Button_UI>().ClickFunc = () => { SetGraphVisual(lineGraphVisual); }; // Level Selection process determined by the Scene indexer switch (SceneManager.GetActiveScene().buildIndex) { case (2): valueList = new List <int>() { 3, 4, 6, 9, 8 }; break; // 22 houses case (3): valueList = new List <int>() { 10 }; break; // 10 case (4): valueList = new List <int>() { 1, 2, 2, 3, 2, 1, 1 }; break; // 12 houses case (5): valueList = new List <int>() { 2, 2, 2, 3, 4, 3, 4, 2, 2 }; break; // 22 houses case (6): valueList = new List <int>() { 5, 5 }; break; case (7): valueList = new List <int>() { 5, 5 }; break; case (8): valueList = new List <int>() { 5, 5 }; break; case (9): valueList = new List <int>() { 5, 5 }; break; // case(5): valueList = new List<int>() { 22,23,22,21,24,27,31,29,31,34,34,34,30,34,33,32,31,30,32 }; // case(6): valueList = new List<int>() { 22,23,22,21,24,27,31,29,31,30,29,31,30,32,35,34,33,32,33,32,31,28,26,24 }; default: valueList = new List <int>() { 0 }; break; } transmitter_valueList = valueList; // transmits the values on the graph ShowGraph(valueList, barChartVisual, -1, (int _i) => "" + (_i), (float _f) => Mathf.RoundToInt(_f) + " "); }
private void PlotBreakEvenPoint() { plot4.Clear(); Finances finances = GameController.instance.player.finances; List <int> priceData = new List <int>(); priceData.AddRange(finances.revenue); priceData.Sort(); List <int> quantityData = finances.GetQuantityData(); Regression regression = new Regression(); float a = 0; float b = 0; float rSq = 0; //regression.LinearRegression(quantityData.ToArray(), finances.revenue.ToArray(),out a, out b, out rSq); List <float> regressionData = new List <float>(); float xSize = (quantityData.Max() - quantityData.Min()) / quantityData.Count; List <float> quantityNormalizedData = new List <float>() { 0 }; for (int i = 0; i < quantityData.Count; i++) { quantityNormalizedData.Add(quantityNormalizedData.LastOrDefault() + xSize); } float ySize = (priceData.Max() - priceData.Min()) / priceData.Count; List <float> regressionDataNormalized = new List <float>() { 0 }; for (int i = 0; i < priceData.Count; i++) { regressionDataNormalized.Add(regressionDataNormalized.LastOrDefault() + ySize); } regressionDataNormalized.Remove(regressionDataNormalized.LastOrDefault()); // regressionData.AddRange(regression.Function(quantityNormalizedData, a, b)); List <int> x = new List <int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; LineGraphVisual originalVisual = new LineGraphVisual(containers[3], dotSprite, 12, false, new Color(1, 1, 1, 0.0f), Color.white); LineGraphVisual revenueVisual = new LineGraphVisual(containers[3], dotSprite, 12, false, Color.cyan, Color.white); LineGraphVisual regressionVisual = new LineGraphVisual(containers[3], dotSprite, 12, false, Color.yellow, Color.white); LineGraphVisual expencesRegressionVisual = new LineGraphVisual(containers[3], dotSprite, 12, false, Color.red, Color.red); List <float> extrems = new List <float>(); List <float> expencesRegression = new List <float>(); if (finances.revenue.Max() >= finances.staticExpences.Max()) { extrems = plot4.ShowPlot(finances.revenue, originalVisual, 14, containers[3], 0, 0, null, displayGrid: false); } else { extrems = plot4.ShowPlot(finances.staticExpences, originalVisual, -1, containers[3], 0, 0, displayGrid: false); } plot4.ShowPlot(regressionDataNormalized, revenueVisual, 14, containers[3], extrems[0], extrems[1], (int i) => Mathf.RoundToInt(quantityNormalizedData[i]).ToString(), (float f) => String.Format("{0:n0} $", Mathf.RoundToInt(f)), displayGrid: true); List <int> yearExpences = finances.GetOverYearExpences(); if (yearExpences.Count < x.Count) { for (int i = yearExpences.Count; i < x.Count; i++) { yearExpences.Add(yearExpences.LastOrDefault()); } } regression.LinearRegression(x.ToArray(), yearExpences.ToArray(), out a, out b, out rSq); // take last 12 elements and delete the last one in order to make regression. Adjust x accordingly expencesRegression = regression.Function(x.ConvertAll(p => (float)p), a, b); Debug.Log("-----Linear Regression-----"); Debug.Log("A: " + a + " B: " + b + "Rsquare: " + rSq); plot4.ShowPlot(expencesRegression, expencesRegressionVisual, -1, containers[3], extrems[0], extrems[1], displayGrid: false); }
private void Awake() { instance = this; statisticsManager = GameObject.FindObjectOfType <StatisticsManager> (); // Grab base objects references graphContainer = transform.Find("graphContainer").GetComponent <RectTransform> (); labelTemplateX = graphContainer.Find("labelTemplateX").GetComponent <RectTransform> (); labelTemplateY = graphContainer.Find("labelTemplateY").GetComponent <RectTransform> (); dashContainer = graphContainer.Find("dashContainer").GetComponent <RectTransform> (); dashTemplateX = dashContainer.Find("dashTemplateX").GetComponent <RectTransform> (); dashTemplateY = dashContainer.Find("dashTemplateY").GetComponent <RectTransform> (); tooltipGameObject = graphContainer.Find("tooltip").gameObject; startYScaleAtZero = true; gameObjectList = new List <GameObject> (); yLabelList = new List <RectTransform> (); graphVisualObjectList = new List <IGraphVisualObject> (); IGraphVisual lineGraphVisual = new LineGraphVisual(graphContainer, dotSprite, Color.green, new Color(1, 1, 1, .5f)); IGraphVisual barChartVisual = new BarChartVisual(graphContainer, Color.white, .8f); // Set up buttons transform.Find("barChartBtn").GetComponent <Button_UI> ().ClickFunc = () => { SetGraphVisual(barChartVisual); }; transform.Find("lineGraphBtn").GetComponent <Button_UI> ().ClickFunc = () => { SetGraphVisual(lineGraphVisual); }; transform.Find("decreaseVisibleAmountBtn").GetComponent <Button_UI> ().ClickFunc = () => { DecreaseVisibleAmount(); }; transform.Find("increaseVisibleAmountBtn").GetComponent <Button_UI> ().ClickFunc = () => { IncreaseVisibleAmount(); }; HideTooltip(); // Set up base values //List<int> valueList = new List<int> () { 5, 98, 56, 45, 30, 22, 17, 15, 13, 17, 25, 37, 40, 36, 33 }; // List<int> valueList = statisticsManager.numberOfChickens; // ShowGraph (valueList, barChartVisual, -1, (int _i) => "" + (_i + 1), (float _f) => "Chickens " + Mathf.RoundToInt (_f)); /* * // Automatically modify graph values and visual * bool useBarChart = true; * FunctionPeriodic.Create(() => { * for (int i = 0; i < valueList.Count; i++) { * valueList[i] = Mathf.RoundToInt(valueList[i] * UnityEngine.Random.Range(0.8f, 1.2f)); * if (valueList[i] < 0) valueList[i] = 0; * } * if (useBarChart) { * ShowGraph(valueList, barChartVisual, -1, (int _i) => "Day " + (_i + 1), (float _f) => "$" + Mathf.RoundToInt(_f)); * } else { * ShowGraph(valueList, lineGraphVisual, -1, (int _i) => "Day " + (_i + 1), (float _f) => "$" + Mathf.RoundToInt(_f)); * } * useBarChart = !useBarChart; * }, .5f); * //*/ // int index = 0; // FunctionPeriodic.Create (() => // { // index = (index + 1) % valueList.Count; // }, .1f); // FunctionPeriodic.Create (() => // { // //int index = UnityEngine.Random.Range(0, valueList.Count); // UpdateValue (index, valueList[index] + UnityEngine.Random.Range (1, 3)); // }, .02f); }
IEnumerator Start() { instance = this; graphContainer = transform.Find("graphContainer").GetComponent <RectTransform>(); labelTemplateX = graphContainer.Find("labelTemplateX").GetComponent <RectTransform>(); labelTemplateY = graphContainer.Find("labelTemplateY").GetComponent <RectTransform>(); dashTemplateX = graphContainer.Find("dashTemplateX").GetComponent <RectTransform>(); dashTemplateY = graphContainer.Find("dashTemplateY").GetComponent <RectTransform>(); tooltipGameObject = graphContainer.Find("tooltip").gameObject; startYScaleAtZero = true; gameObjectList = new List <GameObject>(); yLabelList = new List <RectTransform>(); graphVisualObjectList = new List <IGraphVisualObject>(); IGraphVisual lineGraphVisual = new LineGraphVisual(graphContainer, dotSprite, new Color32(85, 165, 255, 255), new Color32(85, 165, 255, 100)); IGraphVisual barChartVisual = new BarChartVisual(graphContainer, new Color32(85, 165, 255, 255), .8f); //buttons to change graph interface transform.Find("barChartBtn").GetComponent <Button_UI>().ClickFunc = () => { SetGraphVisual(barChartVisual); }; transform.Find("lineGraphBtn").GetComponent <Button_UI>().ClickFunc = () => { SetGraphVisual(lineGraphVisual); }; transform.Find("decreaseVisibleAmountBtn").GetComponent <Button_UI>().ClickFunc = () => { DecreaseVisibleAmount(); }; transform.Find("increaseVisibleAmountBtn").GetComponent <Button_UI>().ClickFunc = () => { IncreaseVisibleAmount(); }; //values to be used in the graph List <int> valueList = new List <int>() { }; WWW tagsTime = new WWW("http://localhost:81/percentsdata/showTotalTime.php"); yield return(tagsTime); string[] timeArray = tagsTime.text.Split(';'); int numrows = int.Parse(timeArray[0]); bool skipFirst = false; foreach (string str in timeArray) { if (skipFirst) { int mins = (Int32.Parse(str)) / 60 / 60; valueList.Add(mins); } skipFirst = true; } WWW tagsName = new WWW("http://localhost:81/percentsdata/ShowTags.php"); yield return(tagsName); //string tagsDataString = tagsData.text; string[] nameArray = tagsName.text.Split(';'); int num = Int32.Parse(nameArray[0]); string[] names = new string[num]; Array.Copy(nameArray, 1, names, 0, num); //to be performed on startup ShowGraph(valueList, barChartVisual, -1, (int _i) => names[(_i)], (float _f) => Mathf.RoundToInt(_f) + " hrs"); }
IEnumerator NewDateData() { IGraphVisual lineGraphVisual = new LineGraphVisual(graphContainer, dotSprite, new Color32(85, 165, 255, 255), new Color32(85, 165, 255, 100)); IGraphVisual barChartVisual = new BarChartVisual(graphContainer, new Color32(85, 165, 255, 255), .8f); WWWForm form = new WWWForm(); string newDate = date.text; string NewYearTimes = "http://localhost:81/percentsdata/NewYearTimes.php"; string NewMonthTimes = "http://localhost:81/percentsdata/NewMonthTimes.php"; string NewDayTimes = "http://localhost:81/percentsdata/NewDayTimes.php"; string NewYearTags = "http://localhost:81/percentsdata/NewYearTags.php"; string NewMonthTags = "http://localhost:81/percentsdata/NewMonthTags.php"; string NewDayTags = "http://localhost:81/percentsdata/NewDayTags.php"; string toUseTime = ""; string toUseTag = ""; if (newDate.Length == 4) { toUseTime = NewYearTimes; toUseTag = NewYearTags; } else if (newDate.Length == 7) { toUseTime = NewMonthTimes; toUseTag = NewMonthTags; } else { toUseTime = NewDayTimes; toUseTag = NewDayTags; } form.AddField("date", newDate); WWW getNewTimes = new WWW(toUseTime, form); yield return(getNewTimes); string[] newtimes = getNewTimes.text.Split(';'); List <int> newList = new List <int>(); int numrows = int.Parse(newtimes[0]); bool skipFirst = false; foreach (string str in newtimes) { if (skipFirst) { int mins = (Int32.Parse(str)) / 60 / 60; newList.Add(mins); } skipFirst = true; } WWW getNewTags = new WWW(toUseTag, form); yield return(getNewTags); string[] nameArray = getNewTags.text.Split(';'); int num = Int32.Parse(nameArray[0]); string[] names = new string[num]; Array.Copy(nameArray, 1, names, 0, num); HideSearchPanel(); ShowGraph(newList, barChartVisual, -1, (int _i) => names[(_i)], (float _f) => Mathf.RoundToInt(_f) + " hrs"); UpdateDisplayPanel(date.text); }