1

我想以编程方式设置图形的类型。因此,而不是在 seriesDefaults 中使用,例如: renderer:$.jqplot.BarRenderer, 我想使用renderer:$.jqplot.graphtype,graphtype 已设置为 BarRenderer、LineRenderer 等的地方。但它不适用于我使用 graphtype 的任何格式(始终默认为默认线图)。对传递此值的建议表示赞赏。谢谢

4

1 回答 1

0

在您的选项中设置这样renderer:$.jqplot.BarRenderer的选项已经是一种编程方式。

据推测,您正在尝试根据文本变量更改此值(而不是对对象的引用,例如$.jqplot.BarRenderer)。

当您定义您的选项时,您不必定义它。您可以稍后根据一组默认选项执行此操作。例如:

var myDefaultOptions = {
    seriesDefaults:{
        pointLabels: { show: true }
    },
    axes: {
        xaxis: {
            renderer: $.jqplot.CategoryAxisRenderer,
            ticks: ticks
        }
    },
    highlighter: { show: false }
}

// ...

// Note: $.extend(true, ...) for a deep copy, if you're re-using this later.
var myOptions = $.extend(true, {}, myDefaultOptions);

if (graphType == 'bars') {
    myOptions.seriesDefaults.renderer = $.jqplot.BarRenderer;
} else if (graphType == '...') {
    // Other renderer
}

var plot = $.jqplot('chart1', data, myOptions);

使用它还可能使您有机会更改其他可能更有意义的设置,具体取决于图形类型(缩放、突出显示等是否有意义)。

如果您想为特定系列执行此操作,您应该首先series: {}在默认选项中创建一个空白,这样可以更轻松地在那里设置单个选项(使用数字访问每个系列)。

于 2013-10-10T19:59:24.550 回答