You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 02:10:13