How to make series labels to show without overlapp

2019-08-05 03:53发布

问题:

I am developing a chart (using ASP.NET CHART CONTROL) with about 2 or 3 series on it. Please look how it looks like now. As you can see, the labels are overlapping each other and it does not look very good. Is there any way I can solve this problem and improve the overall look of the chart?

Thanks.

My code:

series.ChartType = SeriesChartType.Line
series.YValueType = ChartValueType.Double
series.XValueType = ChartValueType.String
series.BorderWidth = 1
series.ShadowOffset = 1
series.IsValueShownAsLabel = True
series.ToolTip = dtrow.ToString
series.LabelForeColor = Color.Gray

series.LabelToolTip = dtrow.ToString

ChartRatings.Series.Add(series)

回答1:

Enable Smart Labels.

Chart1.Series["Series1"].SmartLabels.Enabled = true;

Take a look here SmartLabels



回答2:

You can also set labels outside the chart for more clear presentation.

Chart1.Series[0]["PieLabelStyle"] = "Outside";

For more, refer good article here: http://betterdashboards.wordpress.com/2009/01/20/overlapping-labels-on-a-pie-chart



回答3:

Adding to the marked answer, you can also add these

 chart1.Series[1].SmartLabelStyle.AllowOutsidePlotArea = LabelOutsidePlotAreaStyle.Yes
 chart1.Series[1].SmartLabelStyle.IsMarkerOverlappingAllowed = False
 chart1.Series[1].SmartLabelStyle.MovingDirection = LabelAlignmentStyles.Right