【问题标题】:How to add space between ColumnSeries in a Flex/Flash ColumnChart?如何在 Flex/Flash ColumnChart 中的 ColumnSeries 之间添加空格?
【发布时间】:2011-01-09 21:52:16
【问题描述】:

我正在使用具有多个 ColumnSeries 的 Flex ColumnChart。我想在 ColumnSeries 条/列之间添加空间。

我是什么意思?如果您查看Adobe LiveDocs for ColumnChart,我有一个类似于第一个图表的图表。我想在橙色和绿色列(不是月份)之间添加边距/填充。

我浏览了 LiveDocs,但找不到任何内容。

【问题讨论】:

  • 你有没有想过如何做到这一点?

标签: flex3 charts


【解决方案1】:

您需要使用第二个系列的 y 坐标。我给你写了一个例子,你可以如何实现控制几个系列之间的距离。这并不完美,但希望能向您展示正确的方法;)

http://pastie.org/3327210

【讨论】:

  • 随意接受答案,否则我给你看水平条形图;)
【解决方案2】:

子类化 mx.charts.series.ColumnSet 对我来说非常有效(至少在 4.0 sdk 中)

public class TestColumnSet extends ColumnSet 
{                   
    public var intraSetMaxColumnWidth:Number = NaN;
    public var intraSetColumnWidthRatio:Number = NaN;

    override protected function customizeSeries(glyph:IChartElement,i:uint):void
    {
        super.customizeSeries(glyph, i);            
        var currentSeries:IColumn = IColumn(glyph);         

        if(!isNaN(intraSetColumnWidthRatio))
            currentSeries.columnWidthRatio = intraSetColumnWidthRatio;          
        if(!isNaN(intraSetMaxColumnWidth))
            currentSeries.maxColumnWidth = intraSetMaxColumnWidth;      
    }   
 }

这样使用:

var cs:TestColumnSet = new TestColumnSet();
...
cs.intraSetColumnWidthRatio = cs.columnWidthRatio/cs.series.length*(1-desiredSpaceRatio);

【讨论】: