Apache flex Flex4中的Adobe Flex图表:带类别轴的笛卡尔数据画布?

Apache flex Flex4中的Adobe Flex图表:带类别轴的笛卡尔数据画布?,apache-flex,flex4,charts,Apache Flex,Flex4,Charts,我正在完成一个新的图表,它使用类别轴作为水平轴,使用线性轴作为垂直轴。点被正确地绘制,我有一个笛卡尔数据画布作为背景元素,我希望画布被用来绘制一些填充整个图表的水平矩形“条带”(但不是标准网格线条带)。我需要在运行时根据数据绘制完整(和动态)的矩形,并且与记号轴无关 我已经验证了我的笛卡尔数据画布是作为子元素添加的,但是,所有使用绘图API实际绘制的尝试都没有成功。我在另一个网站上找到了一篇文章,并且已经阅读了很多asdocs,试图找出我遗漏了什么(请不要用“用一行连接两列”的文章的链接回复)

我正在完成一个新的图表,它使用类别轴作为水平轴,使用线性轴作为垂直轴。点被正确地绘制,我有一个笛卡尔数据画布作为背景元素,我希望画布被用来绘制一些填充整个图表的水平矩形“条带”(但不是标准网格线条带)。我需要在运行时根据数据绘制完整(和动态)的矩形,并且与记号轴无关

我已经验证了我的笛卡尔数据画布是作为子元素添加的,但是,所有使用绘图API实际绘制的尝试都没有成功。我在另一个网站上找到了一篇文章,并且已经阅读了很多asdocs,试图找出我遗漏了什么(请不要用“用一行连接两列”的文章的链接回复)

作为测试,我试着让笛卡尔数据画布只画一个基本的矩形,但是我在屏幕上什么也看不到。下面是这个小练习的代码:

protected function drawChartCanvas():void
{

  chtCanvas.clear(); 
  chtCanvas.beginFill(0x000000);

  var canvasWidth:Number = chtCanvas.width;
  var canvasHeight:Number = chtCanvas.height;

  var minPt:Array = chtCanvas.localToData(new Point(0, 0)); //
  var maxPt:Array = chtCanvas.localToData(new Point(canvasWidth,canvasHeight));


  // Tried this
  chtCanvas.drawRect(minPt[0]-1, maxPt[1], maxPt[0]-1, minPt[1]);

  // Tried using data coordinates
  //chtCanvas.drawRect(0, someChartData, chart.width, 0);

  // Tried something random like this
  // chtCanvas.drawRect(0,10000, 10000, 0);

  chtCanvas.endFill(); 
}
但我在屏幕上什么也没看到。我想知道在使用类别轴时,笛卡尔数据画布使用的坐标是否工作/转换?我的绘图图表轴和背景元素属性:

<mx:backgroundElements>
 <mx:CartesianDataCanvas id="chtCanvas" includeInRanges="true" includeInLayout="true" visible="true"/>
 <mx:GridLines gridDirection="horizontal"/>
</mx:backgroundElements>


<mx:verticalAxis>
 <mx:LinearAxis id="axisSalary" baseAtZero="true" autoAdjust="true" title="Salary"/>
</mx:verticalAxis>
<mx:horizontalAxis>
 <mx:CategoryAxis id="axisDate" categoryField="Date" title="Date" dataFunction="formatChartDates"/>
</mx:horizontalAxis>

我认为笛卡尔数据画布可以将垂直轴的点(这里是工资值)作为一个点,然后通过图表宽度来完成我的“带状”,但我无法在画布上绘制任何东西。我认为,由于画布使用的是数据点,而不是屏幕坐标,因此我应该仍然能够使用我的薪水来确定背景元素的高度,但仍然可以使用图表宽度来确保矩形始终穿过屏幕。任何帮助都将不胜感激

更新:其他信息

所以我想我发现了问题所在,它与数据坐标有关。我能够画出矩形。最初,我希望使用带有直线系列的绘图图表,以便将我的值放置在图表的中心,而不是从原点开始。我将其修改为带有直线系列的折线图,并使用笛卡尔数据画布渲染条带,但现在的问题是,并不总是有多个数据值会拉伸图表的整个宽度

因此,现在的问题是,当给定点没有实际数据值时,如何在数据坐标中获取图表的原点?例如,使用带有直线系列的绘图图表将所有数据值居中,但为了绘制,我需要弄清楚当没有数据值关联时,如何表示图形原点的x坐标


谢谢

因此,我不得不重新思考这个问题的实际问题,并最终找到了解决问题的方法。这篇文章回答了这个问题