How to set different Label in Legend in Pie Chart

2019-01-20 03:44发布

问题:

I'm currently doing a window form that have Pie Chart inside.I need to show the percentage of the pie.

But now I have eencountered a problem : When I add this #PERCENT{P2} to series the Pie Chart will show like this:

But if I remove it, the Pie Chart will show like this

Is there possible to make the Pie Chart Like this?

My Code:

DataTable dt = new DataTable();
        dt.Columns.Add("completed", typeof(string));
        dt.Columns.Add("no", typeof(int));
        int noin = allitem - intime;
        dt.Rows.Add("Complete In Time", intime);
        dt.Rows.Add("OverDue", noin);

        chart1.DataSource = dt;

        chart1.DataBind();

回答1:

Yes, this is easily done by setting the LegendText for each of your DataPoints like this:

foreach (DataPoint dp in yourSeries.Points) dp.LegendText = yourLabel;

If your x-values contain meaningful numbers you can use them:

foreach (DataPoint dp in s.Points) dp.LegendText = dp.XValue + "";

But if you added the x-values as strings they are lost and you have to use another source for the LegendTexts.

If you only have a fixed number of DataPoints you can set the LegendTexts directly:

yourSeries.Points[0].LegendText = "hi";
yourSeries.Points[1].LegendText = "ho";
yourSeries.Points[2].LegendText = "hum";

Note that usually a Legend shows one entry per Series. But for a Pie chart it shows one entry per DataPoint!