public void DrawBox()
        {
            for (int i = 0; i < index; i++)
            {
                for (int j = 0; j < index; j++)
                {
                    if (i != j)
                    {
                        g.FillRectangle(new SolidBrush(Color.White), new Rectangle(startX + per_width * i, startY + per_height * j, per_width, per_height));

                        if (i == 0)
                        {
                            DrawLabel(startX, startY + per_height * j, 1, j);
                        }
                        if (i == index - 1)
                        {
                            DrawLabel(startX + per_width * (i + 1), startY + per_height * j, 3, j);
                        }
                        if (j == 0)
                        {
                            DrawLabel(startX + per_width * i, startY, 0, i);
                        }
                        if (j == index - 1)
                        {
                            DrawLabel(startX + per_width * i, startY + per_height * (j + 1), 2, i);
                        }


                        for (int k = 0; k < label_data[i].Count; k++)
                        {
                            DrawData(label_info[i], label_info[j], label_data[i][k], label_data[j][k], new Point(startX + per_width * i + (int)(per_width * box_horizontal_factor - data_size / 2), startY + per_height * (j + 1) - (int)(per_height * box_vertical_facotr + data_size / 2)));
                        }

                        CorrelationCoefficient cc = new CorrelationCoefficient(label_data[i], label_data[j]);
                        DrawCCText(cc.CalculateCC().ToString("0.00"), new Point(startX + per_width * i, startY + per_height * j));
                    }
                    else
                    {
                        GenerateLabel(new Point(startX + per_width * i + 1, startY + per_height * j + 1), label_info[i].label_name, ContentAlignment.MiddleCenter);
                    }
                }
            }


            //g.DrawLine(new Pen(BackLineColor, box_line_size), new Point(startX, startY), new Point(endX, endY));

            for (int i = 0; i <= index; i++)
            {
                g.DrawLine(new Pen(BackLineColor, box_line_size), new Point(startX, startY + per_height * i), new Point(endX, startY + per_height * i));
                g.DrawLine(new Pen(BackLineColor, box_line_size), new Point(startX + per_width * i, startY), new Point(startX + per_width * i, endY));
            }
        }
Beispiel #2
0
        public void LoadCC()
        {
            for (int i = 0; i < dp.labelNum; i++)
            {
                for (int j = i + 1; j < dp.labelNum; j++)
                {
                    if (j != i)
                    {
                        CorrelationCoefficient cc = new CorrelationCoefficient(dp.ReturnRowData(i), dp.ReturnRowData(j));
                        CCGroup ccg = new CCGroup(i, j, cc.CalculateCC(), cc.CalculateSimilarity());

                        //if the match is >0.7, means it is over match, ingore this two labels.
                        if (ccg.match <= 0.7)
                        {
                            if (ccg.value >= 0.8)
                            {
                                ccLabel.Add(ccg);
                            }
                        }
                    }
                }
            }


            //sort cc array

            for (int i = 0; i < ccLabel.Count; i++)
            {
                for (int j = i + 1; j < ccLabel.Count; j++)
                {
                    if (Math.Abs(ccLabel[j].value) > Math.Abs(ccLabel[i].value))
                    {
                        CCGroup tmp = ccLabel[j];
                        ccLabel[j] = ccLabel[i];
                        ccLabel[i] = tmp;
                    }
                }
            }

            for (int i = 0; i < ccLabel.Count; i++)
            {
                //string s = dp.label[ccLabel[i].indexA] + "+" + dp.label[ccLabel[i].indexB] + "(" + ccLabel[i].value.ToString("0.00") + "-"+ccLabel[i].match.ToString("0.00")+")";
                string s = dp.label[ccLabel[i].indexA] + "+" + dp.label[ccLabel[i].indexB] + "(" + ccLabel[i].value.ToString("0.00") + ")";
                ccLabel_name.Add(s);
            }
        }