public void CutByBefore(int xi, int yi, int offset, Color c, int type) { List <float> y1_x = new List <float>(); List <float> y1_y = new List <float>(); List <float> data = new List <float>(); List <float> _x = new List <float>(); List <float> _y = new List <float>(); //i+offset < dp.data.Count for (int i = 0; i + offset < dp.dataNum; i++) { Double[,] d = new double[offset, 2]; for (int j = 0; j < offset; j++) { d[j, 0] = dp.data[i + j].data[xi]; d[j, 1] = dp.data[i + j].data[yi]; } PCA pca = new PCA(d); data.Add((float)pca.a * dp.data[i + offset].data[xi] + (float)pca.b - dp.data[i + offset].data[yi]); _x.Add(dp.data[i + offset].data[xi]); _y.Add(dp.data[i + offset].data[yi]); Console.WriteLine(i.ToString()); } timeGraphObj tgoj = new timeGraphObj(); tgoj.SetData(_x, _y); timeGraph.SetDrawData(data, type, offset, c, tgoj); timeGraph.AddShown(type); }
public void SetDrawData(List <float> d, int t, int o, Color c, timeGraphObj _obj) { float per_width = (endX - startX) / (float)total; int per_length = (endY - startY) / 2; //float max = timeGraphObj.GetMax(d); float max = max_value; List <Point> tmpP = new List <Point>(); for (int i = 0; i < d.Count; i++) { tmpP.Add(new Point((int)(startX + per_width * (i + o)), (int)((endY + startY) / 2 - per_length * (d[i] / max)))); } Data _data = new Data(t, o, per_width, tmpP, d, c, _obj); draw_data.Add(_data); /* * float per_width = (endX - startX) / (float)data.Count; * data_point.Clear(); * int per_length = (endY - startY) / 2; * * for (int i = 0; i < data.Count; i++) * data_point.Add(new Point((int)(startX + per_width * i), (int)((endY + startY) / 2 - per_length * (data[i] / max)))); * */ }
public Data(int t, int o, float per, List <Point> _p, List <float> d, Color c, timeGraphObj _obj) { type = t; offset = o; perWidth = per; p = new List <Point>(); p = _p; _data = new List <float>(); _data = d; dataColor = c; obj = _obj; }
public int CutDataByYear(int xi, int yi, string y1_s, string y1_e, string y2_s, string y2_e, int offset, Color c, int type) { List <Data> y1 = dp.SearchData(y1_s, y1_e); List <Data> y2 = dp.SearchData(y2_s, y2_e); List <float> y1_x = new List <float>(); List <float> y1_y = new List <float>(); List <float> y2_x = new List <float>(); List <float> y2_y = new List <float>(); for (int i = 0; i < y1.Count; i++) { y1_x.Add(y1[i].data[xi]); y1_y.Add(y1[i].data[yi]); } for (int i = 0; i < y2.Count; i++) { y2_x.Add(y2[i].data[xi]); y2_y.Add(y2[i].data[yi]); } timeGraphObj tgoj = new timeGraphObj(); tgoj.SetData(y1_x, y1_y); tgoj.CalculateRegression(); List <float> tmpf = new List <float>(); tmpf = tgoj.GetDiff(y2_x, y2_y); offset += y1.Count; timeGraph.SetDrawData(tmpf, type, offset, c, tgoj); timeGraph.AddShown(type); return(offset); }