public RegressStatisticsForm(RegressResult re, WantDataType wd) { InitializeComponent(); re_ = re; wd_ = wd; menuStrip1.Visible = false; writeAssetToolStripMenuItem.Visible = false; writeAsOptimizeToolStripMenuItem.Visible = false; chart_.Titles.Add("Title"); string sMode = re.runMode_ == RunMode.RM_Asset ? "Asset mode" : "Raw mode"; chart_.Titles[0].Text = String.Format("{0} {1}", re.solutionName_, sMode); switch (wd_) { case WantDataType.WD_BonusData: fillBonusChart(); break; case WantDataType.WD_StrategyData: fillStrategyDataChart(); break; case WantDataType.WD_RateItemData: fillRateItemChart(); menuStrip1.Visible = true; writeAssetToolStripMenuItem.Visible = true; break; case WantDataType.WD_HistoryData: fillHistoryDataChart(); menuStrip1.Visible = true; writeAsOptimizeToolStripMenuItem.Visible = true; if (re_.reHistory_ == null) { break; } historyView.Columns.Add("solution", 80); LUtils.InitListView(historyView, HistoryData.ShowColumnInfos); historyView.Items.Add(re_.reHistory_.toListViewItem(historyView, re_.solutionName_)); addSolutionBestDataToHistoryView(re_.solutionName_, "best"); break; default: throw new ArgumentException("Unknown data type!"); } }
void fillStrategyDataChart() { if (re_.strategyList_.Count < 2) { return; } Dictionary <String, int> straBuyItemCount = new Dictionary <String, int>(); Dictionary <String, float> straBonusDict = new Dictionary <String, float>(); int nTotalCount = 0; float totalBonus = 0; foreach (var item in re_.selItems_) { if (!item.iamBuyItem_) { continue; } ++nTotalCount; if (straBuyItemCount.ContainsKey(item.strategyName_)) { straBuyItemCount[item.strategyName_]++; } else { straBuyItemCount[item.strategyName_] = 1; } var bonus = item.getColumnVal("bonus"); if (bonus != "") { float bonusValue = Utils.GetBonusValue(bonus); if (straBonusDict.ContainsKey(item.strategyName_)) { straBonusDict[item.strategyName_] += bonusValue; } else { straBonusDict[item.strategyName_] = bonusValue; } totalBonus += bonusValue; } } historyView.Columns.Add("strategy", 80); LUtils.InitListView(historyView, HistoryData.ShowColumnInfos); foreach (var kv in straBuyItemCount) { addSolutionBestDataToHistoryView("$" + kv.Key, kv.Key); } DataTable dt = new DataTable(); dt.Columns.Add("xDesc"); dt.Columns.Add("count"); dt.Columns.Add("bonusValue"); foreach (var kv in straBuyItemCount) { DataRow row = dt.NewRow(); row["xDesc"] = kv.Key; row["count"] = kv.Value; float bonus; if (straBonusDict.TryGetValue(kv.Key, out bonus)) { row["bonusValue"] = bonus; } dt.Rows.Add(row); } chart_.ChartAreas[0].Name = dt.Columns[1].ColumnName; ChartArea area = new ChartArea(dt.Columns[2].ColumnName); chart_.ChartAreas.Add(area); for (int i = 1; i < dt.Columns.Count; ++i) { var col = dt.Columns[i]; var series = new Series(); series.Name = col.ColumnName; series.XValueMember = "xDesc"; series.YValueMembers = col.ColumnName; series.ToolTip = col.ColumnName; series.ChartType = SeriesChartType.Pie; series.ChartArea = col.ColumnName; chart_.Series.Add(series); } chart_.DataSource = dt; }