2012-01-26 2 views
1

Я хочу использовать диаграмму в своем новом приложении ExtJS4.
Оси выглядят отлично, и я тоже получаю линию; но это не имеет никакого смысла. Вот скриншот моей проблемы: Line does not care about points...ExtJS 4 Chart: Линия не заботится о точках

Итак, как вы можете видеть, я получил оси только хорошо, и данные, оставшиеся от графика, должны быть нарисованы; но очевидно, что это на самом деле не делать то, что я ожидал ;-)

Я пытался жёстко данные, так вот мой магазин:

Ext.define('MR.store.ResultChartStore', { 
extend: 'Ext.data.Store', 
model: 'MR.model.ResultPoint', 
data: [ 
    {rings: 400, date: new Date(1970, 1, 1)}, 
    {rings: 398, date: new Date(1970, 1, 2)}, 
    {rings: 275, date: new Date(1970, 1, 3)} 
] 
}); 

ссылаются, модель выглядит следующим образом:

Ext.define('MR.model.ResultPoint', { 
extend: 'Ext.data.Model', 
fields: ['rings', 'date'] 
}); 

И, наконец, моя диаграмма выглядит следующим образом:

{ 
    xtype: 'chart', 
    width: 600, 
    height: 300, 
    theme: 'Green', 
    store: 'ResultChartStore', 
    axes: [ 
    { 
     title: 'Ringe', 
     type: 'Numeric', 
     position: 'left', 
     fields: ['rings'], 
     minimum: 0, 
     maximum: 400 
    }, 
    { 
     title: 'Datum', 
     type: 'Time', 
     position: 'bottom', 
     fields: ['date'], 
     dateFormat: 'd.m.Y' 
    } 
    ], 
    series: [ 
    { 
     type: 'line', 
     xField: 'date', 
     yField: 'rings' 
    } 
    ] 
} 

Может ли кто-нибудь определить мою ошибку? Я просто не могу найти его в моих глазах он выглядит точно так же, как и примеры в документации ...

Greetz и заранее спасибо
gilaras

-------- -----------------------------ОБНОВИТЬ-------------------- -------------------

Я думаю, я знаю, где проблема, но я не знаю, как ее решить: -/
Когда я добавьте больше данных в магазин, диаграмма выглядит так: My new chart

Таким образом, проблема заключается в том, что Ext не «знает», как подключить мои точки ...
По моему мнению, он находит точку, рисует линию через нее и повторяет ее для каждой точки, указанной в моем магазине.

Мой график будет выглядеть так:

{ 
    xtype: 'chart', 
    width: 600, 
    height: 300, 
    theme: 'Base', 
    store: 'ResultChartStore', 
    axes: [ 
    { 
     title: 'Ringe', 
     type: 'Numeric', 
     position: 'left', 
     fields: ['rings'], 
     minimum: 0, 
     maximum: 400, 
     minorTickSteps: 1, 
     grid: { 
     odd: { 
      opacity: 1, 
      fill: '#ddd', 
      stroke: '#bbb', 
      'stroke-width': 0.5 
     } 
     } 
    }, 
    { 
     title: 'Datum', 
     type: 'Time', 
     position: 'bottom', 
     fields: ['date'], 
     dateFormat: 'd' 
    } 
    ], 
    series: [ 
    { 
     type: 'line', 
     xField: 'date', 
     yField: 'rings', 
     highlight: { 
     size: 7, 
     radius: 7 
     }, 
     markerConfig: { 
     type: 'cross', 
     size: 4, 
     radius: 4, 
     'stroke-width': 0 
     } 
    } 
    ] 
} 

Каждый получил представление о том, что я могу делать неправильно?

+0

Оформить заказ аналогичной нити http://stackoverflow.com/questions/8991702/simple-line-chart-with-dates/8993558#8993558. – Marko

ответ

3

Во-первых, вам не хватает важной конфигурации в вашей серии. Конфигурация axis связывает точки в вашем магазине с осями на диаграмме. Однако документация Sencha на эту конфигурацию вводит в заблуждение; Sencha говорит, что config принимает строку, когда на самом деле она берет либо строку, либо массив строк. В вашем случае используйте axis: ['left', 'bottom'].

Второй (и я менее уверен в этом), вы можете попробовать использовать полное имя магазина в конфигурации диаграммы. Итак, 'MR.store.ResultChartStore' вместо 'ResultChartStore'. Хотя вы, кажется, получаете очки просто отлично, я не удивлюсь, если будет какой-то побочный эффект.

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

+0

Большое спасибо, вы только что сохранили мои выходные :-) Добавление «bottom» в конфигурацию оси помогло решить мою проблему. Однако хранилище работает как ожидалось (и если я правильно помню, что касается документов, это способ указать хранилище с использованием шаблона MVC). TL; DR? Спасибо :-) – gilaras

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