如何配置Syncfusion饼图:X值为图表标签,Y值显示在图例?
解决Syncfusion ChartControl饼图标签与图例显示不符的问题
要实现饼图内显示X值(字符串)、图例显示Y值(整数)的效果,你需要明确指定数据点标签和图例项的文本格式,以下是修正后的代码及关键配置说明:
修正后的完整代码
// Create Chart-Control ChartControl chart = new ChartControl(); chart.Series.Clear(); chart.Size = new Size(1920, 950); // 确保图例可见(默认已开启,可显式设置) chart.LegendSettings.Visible = true; // Create Chart-Series ChartSeries series = new ChartSeries("ExampleChart", ChartSeriesType.Pie); series.Points.Add("Value 1", 25); series.Points.Add("Value 2", 75); // 关键配置1:设置饼图扇区内显示X值(字符串) series.Style.TextFormat = "{X}"; series.Style.DisplayText = true; // 确保数据点标签可见 series.ShowDataPointLabels = true; // 关键配置2:设置图例项显示Y值(数值) chart.LegendSettings.LegendItemTextFormat = "{Y}"; // Add Chart-Series to Chart-Control chart.Series.Add(series); // Save Chart to image chart.SaveImage("image.png");
关键配置说明
series.Style.TextFormat = "{X}":强制饼图每个扇区内部显示对应数据点的X轴字符串值(即你添加的"Value 1"、"Value 2"),替代默认的Y值显示。chart.LegendSettings.LegendItemTextFormat = "{Y}":指定图例中每个条目显示对应数据点的Y轴数值,确保图例只展示数值信息。series.ShowDataPointLabels = true:显式开启数据点标签的显示,配合DisplayText确保扇区内文本正常渲染。
如果自动格式配置不生效,可尝试手动创建图例项作为备选方案:
// 手动创建图例项的备选方案 chart.LegendSettings.LegendItems.Clear(); foreach (ChartDataPoint point in series.Points) { ChartLegendItem item = new ChartLegendItem(); item.Text = point.YValue.ToString(); item.SymbolColor = point.Style.Interior; chart.LegendSettings.LegendItems.Add(item); }
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

