Пример #1
0
        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!");
            }
        }
Пример #2
0
        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;
        }