ExtJs 4.1.1图表缺少标记

时间:2012-08-19 20:19:29

标签: extjs charts series

我花了好几天试图解决这个问题:

我正在尝试创建一个包含多个系列的图表。在一个系列中,我展示了一条包含所有点的线(在我的代码“val”系列中)。在第二个系列中,我希望只显示部分点(“温度”系列)。两个系列都显示int的数据类型。

我试图在“温度”字段中设置一个非常低的值,以便从图表中省略它,但它也导致跳过相应的“val”!

在ExtJs 4.1.1中:跳过“val”字段的10am值。

在ExtJs 4.0.7中:“val”字段的10am值存在!

(我希望我可以在这里发布图片,但我没有10个声望点。:-()

这是我的代码:

Ext.define('WeatherPoint', {
    extend: 'Ext.data.Model',
    fields: ['temperature', 'date', 'val']
});

var store1 = Ext.create('Ext.data.Store', {
    model: 'WeatherPoint',
    data: [
        { temperature: 58, date: new Date(2011, 1, 1, 8), val: 10 },
        { temperature: 63, date: new Date(2011, 1, 1, 9), val: 20 },
        { temperature: -100, date: new Date(2011, 1, 1, 10), val: 40 }, 
        { temperature: 78, date: new Date(2011, 1, 1, 11), val: 90 },
        { temperature: 81, date: new Date(2011, 1, 1, 12), val: 50 }
    ]
}); 

var chart1 = Ext.create('Ext.chart.Chart',{
        xtype: 'chart',
        animate: false,
        store: store1,
        legend: true,
        insetPadding: 30,
        axes: [{
            title: 'Temperature',
            type: 'Numeric',
            position: 'left',
            fields: ['temperature', 'val'],
            minimum: 0,
            maximum: 100
        }, {
            title: 'Time',
            type: 'Time',
            position: 'bottom',
            fields: ['date'],
            dateFormat: 'ga',
            step: [Ext.Date.HOUR, 1],
            fromDate: new Date(2011, 1, 1, 8),
            toDate: new Date(2011, 1, 1, 12)
        }],
        series: [{
            type: 'scatter',
            axis: ['left','bottom'],
            xField: 'date',
            yField: 'temperature'
        }, {
            type: 'line',
            title: 'val',
            axis: ['left','bottom'],
            xField: 'date',
            yField: 'val'
        }]
    });


var panel1 = Ext.create('widget.panel', {
    width: 600,
    height: 400,
    renderTo: Ext.getBody(),
    layout: 'fit',
    items: chart1
});
  1. 为什么4.1.1会因为一个系列中超出范围的值而跳过所有系列?
  2. 如何只在一个系列中显示部分点,在第二个系列中显示所有点?

1 个答案:

答案 0 :(得分:2)

尝试对要隐藏的点使用null或空''值。

示例:

var store1 = Ext.create('Ext.data.Store', {
    model: 'WeatherPoint',
    data: [
        { temperature: 58, date: new Date(2011, 1, 1, 8), val: 10 },
        { temperature: 63, date: new Date(2011, 1, 1, 9), val: 20 },
        { temperature: '', date: new Date(2011, 1, 1, 10), val: 40 },
        { temperature: 78, date: new Date(2011, 1, 1, 11), val: ''},
        { temperature: 81, date: new Date(2011, 1, 1, 12), val: 50 }
    ]
});