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

如何在C# Plotly中创建包含多系列的图表?

在C# Plotly中绘制多线条/多柱状图的解决方案

确实,C# Plotly里的Chart.Line()、Chart.Bar()这类快捷方法是为单系列数据设计的,只能生成单线条/单组柱状图,这和Python Plotly的直观操作有点不一样,容易让刚上手的开发者疑惑怎么实现多系列图表。不过你找对方向了——核心就是用Chart.Plot()方法配合系列对象列表来实现。

多线条图实现步骤

要创建多线条图,你需要创建多个Scatter对象(每个对象对应一条线),将它们存入列表后传入Chart.Plot()方法,具体示例如下:

// 1. 准备x轴和多组y轴数据
var xValues = Enumerable.Range(1, 500);
var housingAges = /* 你的第一组y轴数据,比如IEnumerable<float>类型 */;
var housingPrices = /* 你的第二组y轴数据 */;
var housingSizes = /* 你的第三组y轴数据 */;

// 2. 创建Scatter对象列表,每个对象对应一条线
List<Scatter> scatters = new List<Scatter>();
scatters.Add(new Scatter() {
    x = xValues,
    y = housingAges,
    mode = "lines+markers", // 同时显示线条和标记点
    name = "房屋年龄",      // 设置系列名称,用于图例区分
    Line = new Line { Color = "#1f77b4" } // 可选:自定义线条颜色
});
scatters.Add(new Scatter() {
    x = xValues,
    y = housingPrices,
    mode = "lines",
    name = "房屋价格",
    Line = new Line { Color = "#ff7f0e" }
});
scatters.Add(new Scatter() {
    x = xValues,
    y = housingSizes,
    mode = "markers",
    name = "房屋面积",
    Marker = new Marker { Color = "#2ca02c", Size = 5 } // 自定义标记样式
});

// 3. 可选:配置图表布局(标题、坐标轴标签等)
var chartLayout = new Layout.Layout() {
    Title = "房屋数据多维度分析",
    Xaxis = new Xaxis { Title = "样本编号" },
    Yaxis = new Yaxis { Title = "数值" },
    Showlegend = true // 显示图例
};

// 4. 生成并展示图表
var chart = Chart.Plot(scatters, chartLayout);
chart.Show();

多柱状图实现步骤

多柱状图的实现逻辑和多线条图一致,只是把Scatter换成Bar对象,还可以通过Barmode配置分组或堆叠显示:

// 1. 准备分类数据和多组数值数据
var regions = new List<string> { "区域A", "区域B", "区域C" };
var sales2023 = new List<double> { 12000, 15000, 9000 };
var sales2024 = new List<double> { 14000, 16500, 10500 };

// 2. 创建Bar对象列表,每个对象对应一组柱子
List<Bar> bars = new List<Bar>();
bars.Add(new Bar() {
    x = regions,
    y = sales2023,
    name = "2023年销售额",
    Marker = new Marker { Color = "#1f77b4" }
});
bars.Add(new Bar() {
    x = regions,
    y = sales2024,
    name = "2024年销售额",
    Marker = new Marker { Color = "#ff7f0e" }
});

// 3. 配置布局,设置柱状图显示模式
var barLayout = new Layout.Layout() {
    Title = "各区域年度销售额对比",
    Xaxis = new Xaxis { Title = "区域" },
    Yaxis = new Yaxis { Title = "销售额(元)" },
    Barmode = "group" // 可选:"group"分组显示,"stack"堆叠显示
};

// 4. 生成并展示图表
var barChart = Chart.Plot(bars, barLayout);
barChart.Show();

这种方式的优势在于灵活性极高,你可以为每个数据系列单独定制样式、显示模式,完全满足复杂多系列图表的需求。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 23:39:05