箱线图工具提示可见性

Box Plot Chart Tooltip Visibility

我已经在 C# 中创建了箱形图图表并添加了工具提示,这样当用户将鼠标悬停在图表上的任何箱形图系列上时,用户可以看到工具提示出现,显示箱形图系列的值。但是,所有 6 个 Y 值(最大值、最小值、平均值、第 25 个百分位数、第 50 个百分位数、第 75 个百分位数)的箱线图系列没有工具提示。

例如,如果一个箱线图系列的最大值、最小值、平均值、第 25 个百分位、第 50 个百分位和第 75 个百分位值分别为 15,因为它始终是相同的值(一条直线),所以不会显示工具提示。

当前输出:

当箱形图系列的所有 6 个 Y 值的值都不相同时,将出现工具提示:

当箱形图系列的所有 6 个 Y 值的值都相同时,不会出现工具提示: 这是我的代码:

Chart chart1= new Chart();
chart1.DataSource = dt;

chart1.Series.Add(new Series());
chart1.Series[0].ChartType = SeriesChartType.BoxPlot;
chart1.Series.Add(new Series());
chart1.Series[1].ChartType = SeriesChartType.Point;
List<object> List1 = dt.AsEnumerable().ToList<object>();

int chart1_AVG = 0;
int chart1_POINTINDEX = 0;

foreach (DataRow row in dt.Rows)
{
    chart1_AVG = (int)row["AVG"];
    chart1.Series[0].Points.AddXY(
        row["DESC"], 
        new object[] 
        { 
            row["MIN"], 
            row["MAX"], 
            row["25TH_PCT_NUMBER"], 
            row["75TH_PCT_NUMBER"], 
            row["50TH_PCT_NUMBER"], 
            row["AVG"] 
        }
    );
    chart1_POINTINDEX = chart1.Series[1].Points.AddXY(row["DESC"], new object[] { row["AVG"] });
    chart1.Series[0].Points[chart1_POINTINDEX].ToolTip = "Description:" + (string)row["DESC"] + 
                                    System.Environment.NewLine + 
                                    "25th Percentile:" + (int)row["25TH_PCT_NUMBER"] + 
                                    System.Environment.NewLine + 
                                    "50th Percentile:" + (int)row["50TH_PCT_NUMBER"] + 
                                    System.Environment.NewLine + 
                                    "75th Percentile:" + (int)row["75TH_PCT_NUMBER"] + 
                                    System.Environment.NewLine + 
                                    "Maximum:" + (int)row["MAX"] + 
                                    System.Environment.NewLine + 
                                    "Average:" + (int)row["AVG"] + 
                                    System.Environment.NewLine + 
                                    "Minimum:" + (int)row["MIN"];

    if ((chart1_AVG >= AvgMinColorGreen) && (chart1_AVG <= AvgMaxColorGreen))
    {
        chart1.Series[1].Points[chart1_POINTINDEX].MarkerColor = Color.Green;
    }
    else if ((chart1_AVG >= AvgMinColorYellow) && (chart1_AVG <= AvgMaxColorYellow))
    {
        chart1.Series[1].Points[chart1_POINTINDEX].MarkerColor = Color.Orange;
    }
    else if ((chart1_AVG >= AvgMinColorRed) && (chart1_AVG <= AvgMaxColorRed))
    {
        chart1.Series[1].Points[chart1_POINTINDEX].MarkerColor = Color.Red;
    }
}

//create chartareas
ChartArea ca= new ChartArea();
ca.AxisX = new Axis();
ca.AxisX.MajorGrid.Enabled = false;
ca.AxisY = new Axis();
ca.AxisY.MajorGrid.Enabled = false;
chart1.ChartAreas.Add(ca);

//databind
chart1.DataBind();
chart1.Visible = true;

问题:如何为所有 6 个 Y 值都具有相同值的箱线图系列显示工具提示?

感谢您的帮助。

也为 Series[1] 添加 Tooltip

chart1.Series[1].Points[chart1_POINTINDEX].ToolTip = "Description:" + (string)row["DESC"] +
                            System.Environment.NewLine +
                            "25th Percentile:" + (int)row["25TH_PCT_NUMBER"] +
                            System.Environment.NewLine +
                            "50th Percentile:" + (int)row["50TH_PCT_NUMBER"] +
                            System.Environment.NewLine +
                            "75th Percentile:" + (int)row["75TH_PCT_NUMBER"] +
                            System.Environment.NewLine +
                            "Maximum:" + (int)row["MAX"] +
                            System.Environment.NewLine +
                            "Average:" + (int)row["AVG"] +
                            System.Environment.NewLine +
                            "Minimum:" + (int)row["MIN"];