Опираясь на Flex Chart - PullRequest
       27

Опираясь на Flex Chart

1 голос
/ 04 августа 2011

Я создал линейный график в flex, и он работает, как и ожидалось. Теперь я хотел бы добавить затенение в фон для конкретной информации. Например, этот график - http://research.stlouisfed.org/fred2/graph/?id=TOTALSL,TOTALNS, - показывает затененный фон для спадов. Как бы мне подражать этой штриховки в линейной диаграмме Flex?

Спасибо

Ответы [ 2 ]

2 голосов
/ 04 августа 2011

Вы можете нарисовать его на заднем плане графика, используя API рисования.

edit:

Я не знаю ни одного примера кода в Интернете, я сделал это только в рабочем коде (иначе я не могу поделиться им, извините :() вы захотите создатьконтейнер и поместите его в диаграммы

<mx:backgroundElements>

Вы должны передать в этот контейнер минимальное и максимальное значения для оси X, вероятно, в качестве отдельных свойств и поставщика данных, который описывает, когда показывать выделенный раздел.необходимо вычислить минимальное и максимальное значения на основе предоставителя данных, который вы передаете в диаграмму.

Если вы просто хотите отобразить выделенную область, вы просто будете использовать API-интерфейс для рисования и вычислить, где расположить ось X на основена вашем минимальном, максимальном, ширине контейнера и точке данных (начальные и конечные значения) из вашего поставщика данных. Это будет выглядеть примерно так в вашем updateDisplayList:

// code is not tested but a good start

var shadeStartX:Number = (max-min)/startPoint; 
var shadeEndX:Number = (max-min)/endPoint;
var shadeWidth:Number = shadeEndX - shadeStartX;

...

this.graphics.drawRect(shadeStartX, 0, shadeWidth, unscaledHeight);

, но если вы хотите иметь такие вещи, каксостояния наведения и все такое, я бы предложил создать экранный объект, в который вы передаете ширину, и добавить его в контейнер в вычисленном xaXIS, чтобы установить его в.

0 голосов
/ 05 августа 2011

Привет, я чувствую, что рисовать что-то самому - не верный путь. В идеале вы должны использовать PlotSeries внутри LineChart и создать собственный рендерер элементов для каждого элемента в серии.

PlotSeries позволяет вам создать собственное изображение / объект для рисования в определенную дату / точку на графике.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/charts/series/PlotSeries.html

http://livedocs.adobe.com/flex/3/html/help.html?content=charts_types_10.html

Все примеры показывают plotSeries с более мелкими объектами, но вы можете создать объект, который покрывает диаграмму вертикально и имеет постоянную ширину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...