如何使用MigraDoc/PDFSharp隐藏饼图指定数据标签?
解决MigraDoc Pie2D饼图隐藏单个数据标签的问题
MigraDoc中全局设置chart.DataLabel会将样式应用到所有数据点,要隐藏单个标签,你需要单独针对目标数据点修改其DataLabel属性。
只需在现有代码中添加几行,把第二个数据点的标签设为不可见即可:
Chart chart = new Chart(ChartType.Pie2D); chart.Format.Alignment = ParagraphAlignment.Center; chart.Width = Unit.FromCentimeter(8); chart.Height = Unit.FromCentimeter(6); Series series = chart.SeriesCollection.AddSeries(); series.Add(new double[] { single.PercentageGot, (100 - single.PercentageGot) }); var elements = series.Elements.Cast<MigraDoc.DocumentObjectModel.Shapes.Charts.Point>().ToArray(); elements[0].FillFormat.Color = new Color(31, 110, 165); elements[1].FillFormat.Color = Colors.LightGray; // 新增:单独控制第二个数据点的标签可见性 elements[1].DataLabel.Visible = false; XSeries xseries = chart.XValues.AddXSeries(); xseries.Add("Percentage", "Remaining Percentage"); chart.DataLabel.Type = DataLabelType.Percent; chart.DataLabel.Position = DataLabelPosition.OutsideEnd;
原理很直接:全局的chart.DataLabel会给所有数据点配置默认标签样式,但单个数据点的DataLabel属性可以覆盖全局设置。这里将第二个点的Visible设为false,就能隐藏它的百分比标签,同时保留第一个点的正常显示。
内容的提问来源于stack exchange,提问作者Zeeshanef
相关产品推荐
相关产品推荐

