【问题标题】:How to have chart column with two colors?如何有两种颜色的图表列?
【发布时间】:2026-01-09 00:10:02
【问题描述】:

我正在处理图表。我有一个简单的图表,有 2 列,一绿一红:

我想让绿色列在其值超过 60 时变为黄色。

我怎样才能做到这一点?

我通过手动添加 2 个数据点(每个系列一个)制作了图表,因此到目前为止还没有生成此图表的代码。

【问题讨论】:

  • 是什么图表控件?
  • 请显示您当前用于渲染图表的代码!
  • 这并不容易。如果没有使用堆叠图表作为解决所有问题的解决方法,您将需要对列进行所有者绘制。其他图表类型,如点、线或样条线很容易绘制,但列则不然。这里is an example虽然不是为了使用两种颜色而是为了控制宽度和重叠。另外:我们需要看相关代码;如果您有一个或更可能是两个系列,这很不清楚,这会产生很大的不同!!!
  • 感谢 TaW 提供的信息。我将暂时离开这个,因为这比我现在可以处理的要复杂一些。
  • 确实,很复杂。在某种程度上,最简单的解决方法是用第二个图表区域覆盖图表区域,该图表区域包含相同的系列和数据点,但 y 值位于较低的时间(例如 60).. 如果你愿意,我可以向你展示例如,但如果值得,我会三思而后行..

标签: c# winforms mschart


【解决方案1】:

您可以即时设置自定义调色板颜色。因为 ms 图表没有很好的方法来更改柱形图的颜色,所以您可以使用这个小技巧。

Color[] colorSet = new Color[]
{
    Color.Yellow,
    Color.Red
};

chart1.PaletteCustomColors = colorSet;
chart1.Palette = ChartColorPalette.None;

【讨论】: