2010-03-15 2 views
2

Пожалуйста, найдите приведенный ниже кодРисунок пунктирную линию по вершинам Flex Гистограмма

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
<mx:Script> 
<![CDATA[ 
    [Bindable] 
     public var testAC:Array = [ 
      {date:"without", close:50}, 
      {date:"with", close:45}   
     ]; 

]]> 
</mx:Script> 
<mx:ColumnChart id="myChart" dataProvider="{testAC}"> 
    <mx:horizontalAxis> 
    <mx:CategoryAxis categoryField="date"/> 
    </mx:horizontalAxis> 
    <mx:verticalAxis> 
    <mx:CategoryAxis categoryField="close"/> 
    </mx:verticalAxis> 
    <mx:series> 
    <mx:ColumnSeries dataProvider="{testAC}" xField="date" yField="close"/> 
    <mx:LineSeries dataProvider="{testAC}" xField="date" yField="close"/> 
    </mx:series> 
</mx:ColumnChart> 
</mx:Application> 

Этот код рисует Колум диаграмму с двумя столбцами и рисуя линию поперек верхней части обеих колонн. У меня есть два требования:

  1. потребность линии разбиться
  2. как сейчас линия начинается с верхнего правого угла первого столбца к тому же углу второго столбца. Как я могу сдвинуть линию влево, чтобы она начиналась от центра первого столбца до середины второго столбца.

С уважением, ПК

ответ

1

после долгих исследований я, наконец, завершил рисование пунктирной линии графика. Я использовал DashedGraphicUtilities, предоставленный самим Adobe, чтобы нарисовать пунктирную линию. Я расширяю LineSeries и использую эту DashedGraphicUtilities для рисования пунктирной линии. Это решило мою первую проблему и проблему с почтой. Я обновлю это, когда я получу решение для второго.

И у меня также есть решение для второй проблемы. Линейная диаграмма отображалась отлично, как мне было нужно, когда я изменил тип графика из ColumnChart в CartesianChart. Я использовал колонки и ряд строк внутри, и линия и столбцы шли отлично.

С уважением, Anoop

1

Для многих из моих диаграмм со сложным скинингом я использую Axiis. Это очень похоже на Degrafa и позволит вам сделать штрих деграфы и поместить его, где бы вы ни хотели, на свой «dataCanvas».

Вот пример, который является довольно прямой FWD: http://axiis.org/examples/HClusterStackExample.html

«Tisn't лучший ответ на земле, но с использованием axiis настолько прост, и все же она позволяет сложных заливок и обводок, которые не являются разрешено через mxml с плавным графиком.

удачи, Джереми

2

Вы можете нарисовать линию между двумя значениями на вашей декартовой диаграмме с

<mx:Script><![CDATA[ 
    private function connectTwoPoints(
     month1:String, value1:Number, 
     month2:String, value2:Number):void 
    { 
     // Draw Line 
     canvas.clear(); 
     canvas.lineStyle(4, 
      0xCCCCCC, 
      .75, 
      true, 
      LineScaleMode.NORMAL, 
      CapsStyle.ROUND, 
      JointStyle.MITER, 
      2); 
     canvas.moveTo(month1, value1); 
     canvas.lineTo(month2, value2); 
    } 
]]></mx:Script> 

<mx:annotationElements> 
    <mx:CartesianDataCanvas id="canvas" includeInRanges="true"/> 
</mx:annotationElements> 

Лини, что вы рисуете будет «Аннотация Элемент» с помощью «декартово данных Canvas ». Элементы аннотации рисуются на переднем плане. Идеальный пример:
http://livedocs.adobe.com/flex/3/html/help.html?content=charts_eventsandeffects_13.html

+0

PS - если вы хотите нарисовать на фоне, то вы можете использовать «», –

Смежные вопросы