Adobe Flex 折れ線グラフ内に、水平方向に DateTime 軸、垂直方向に線形軸を持つグラフがあります。デカルト データ キャンバスを背景要素として使用し、ほとんどが四角形の背景グラフィックのカスタム セットを描画したいと考えています。複数のデータ ポイントがある場合、グラフはグラフ全体の幅に広がるはずなので、グラフィックは完璧に機能します。
ただし、データ ポイントが 1 つしかない場合は、四角形を描画できないようです。長方形をグラフの幅全体に広げたいので、軸から x 座標を取得できると考えていましたが、これは機能しません。
var canvasWidth:Number = chtCanvas.width;
var canvasHeight:Number = chtCanvas.height;
var minPt:Array;
var maxPt:Array;
var minPtDate:Date;
var maxPtDate:Date;
var minPtComplete:Point;
var maxPtComplete:Point;
// This works fine when there is more than 1 data point
minPt = chtCanvas.localToData(new Point(0, 0));
maxPt = chtCanvas.localToData(new Point(canvasWidth,canvasHeight));
//This does return a date object, but wont draw below
minPtDate = axisDate.minimum;
maxPtDate = axisDate.maximum;
//This returns NaN for the x
minPtComplete = chtCanvas.dataToLocal(minPtDate, axisSalary.minimum);
maxPtComplete = chtCanvas.dataToLocal(maxPtDate, axisSalary.maximum);
// Also tried this. Also returns NaN for the x value
//minPtComplete = chtCanvas.dataToLocal(axisDate.minimum, axisSalary.minumum);
//maxPtComplete = chtCanvas.dataToLocal(axisDate.maximum, axisSalary.maximum);
私の実際の描画方法は次のとおりです。
// Tried this, works with points >2, does not draw with single data point
chtCanvas.drawRect(minPt[0], detail[i].MaxValue, maxPt[0], detail[i].MinValue);
//tried this, no effect with single point
//chtCanvas.drawRect(minPtDate, detail[i].MaxValue, maxPtDate, detail[i].MinValue);
// Tried this, no effect with single point
//chtCanvas.drawRect(minPtDate, minPt[1], maxPtDate, detail[i].MinValue);
// Tried this also
//chtCanvas.drawRect(minPtComplete.x, detail[i].MaxValue, maxPtComplete.x, detail[i].MinValue);
この例では、detail は給与値の配列コレクションであり、Im は配列内のデータ値を使用して長方形の垂直方向の境界を決定します。
グラフの幅全体に四角形を描画する必要があります (データ ポイントが 1 つしかない場合でも)。ありがとう