【问题标题】:Column chart with different widths of columns不同列宽的柱形图
【发布时间】:2016-08-29 03:38:55
【问题描述】:

我正在尝试创建一个包含不同宽度列的柱形图。

是否可以使用图表控件创建类似的图表,或者我应该寻找支持它的库?

【问题讨论】:

  • 尝试修改DataPoint width
  • 这适用于所有列,而我需要每列具有不同的宽度 - 例如Column1 的宽度为 3,Column2 的宽度为 10,依此类推。
  • 遍历列并使用开关设置不同的宽度
  • 我试过了,但图表上没有变化,所有列的宽度保持不变。

标签: c# charts


【解决方案1】:

单独更改每个 DataPoint 上的 MarkerSize 属性

【讨论】:

  • 我尝试遍历所有点并设置 MarkerSize(每次都设置不同的值),但图表上没有任何变化。
【解决方案2】:

您可以像这样使用区域类型图表:

设置

Series s1 = chart1.Series.Add("S1");
s2.ChartType = SeriesChartType.Area;

ChartArea ca = chart1.ChartAreas[0];
ca.AxisX.Minimum = 0;

AddArea(chart1, s2, 12, 53, Color.SlateBlue);
AddArea(chart1, s2, 32, 63, Color.Firebrick);
AddArea(chart1, s2, 22, 23, Color.SlateBlue);
AddArea(chart1, s2, 62, 33, Color.Goldenrod);
AddArea(chart1, s2, 12, 33, Color.PaleVioletRed);

并像这样添加点:

int AddArea(Chart chart, Series s, double x, double y, Color color)
{
    ChartArea ca = chart.ChartAreas[s.ChartArea];
    Axis ax = ca.AxisX;
    Axis ay = ca.AxisY;
    if (s.Points.Count == 0) s.Points.AddXY(ax.Minimum, ay.Minimum);
    DataPoint dp0 = s.Points.Last();
    int p1 = s.Points.AddXY(dp0.XValue, y);
    s.Points.AddXY(dp0.XValue + x, y);
    s.Points.Last().Color = color;
    s.Points.AddXY(dp0.XValue + x, ay.Minimum);
    dp0.Color = color;
    s.Points.Last().Color = color;

    return p1;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多