yong.k yong.k - 1 year ago 83
C# Question

How to set different Label in Legend in Pie Chart

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
to series the
Pie Chart
will show like this:

enter image description here

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

enter image description here

Is there possible to make the
Pie Chart
Like this?enter image description here

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;


Answer Source

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!

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download