串联使用不同的符号

时间:2015-10-02 12:47:02

标签: jquery flot

我可以在同一系列中使用多种类型的符号吗? 我有一个图表,其中第5点应为圆形,第6点和第8点为另一个,并相互连接

1 个答案:

答案 0 :(得分:1)

不,您无法使用多个符号绘制系列,但您可以通过绘制多个系列来获得相同的效果,每个系列都有自己的符号和相同数据的子集。这需要jquery.flot.symbol插件。

例如,我们将这些数据绘制成:

data: [
    [0, 150],
    [1, 175],
    [2, 190],
    [3, 160],
    [4, 140],
    [5, 150],
    [6, 200],
    [7, 170],
    [8, 155],
    [9, 165],
    [10, 160],
    [11, 145]
]

我们可以创建一个系列,通过将points.show设置为false,将lines.show设置为trueexample)来仅绘制直线:

var series = [{
    data: [ [0, 150], [1, 175], [2, 190], [3, 160], [4, 140], [5, 150], [6, 200], [7, 170], [8, 155], [9, 165], [10, 160], [11, 145] ],
    points: { show: false },
    lines: { show: true },
    color: "#81A0C1"
}];

我们可以通过将points.show设置为truelines.show设置为false来添加另一个系列来绘制数据子集的符号。我们还可以通过设置points.symbolexample)来指定要绘制的符号:

var series = [{
    data: [ [0, 150], [1, 175], [2, 190], [3, 160], [4, 140], [5, 150], [6, 200], [7, 170], [8, 155], [9, 165], [10, 160], [11, 145] ],
    points: { show: false },
    lines: { show: true },
    color: "#81A0C1"
},
{
    data: [ [4, 140], [9, 165], [10, 160], [11, 145] ],
    points: {
        show: true,
        symbol: "cross"
    },
    lines: { show: false },
    color: "#81A0C1"
}];

我们可以添加另一个系列,再次将points.show设置为true,将lines.show设置为false,然后选择不同的数据和符号子集({{3 }}):

var series = [{
    data: [ [0, 150], [1, 175], [2, 190], [3, 160], [4, 140], [5, 150], [6, 200], [7, 170], [8, 155], [9, 165], [10, 160], [11, 145] ],
    points: { show: false },
    lines: { show: true },
    color: "#81A0C1"
},
{
    data: [ [4, 140], [9, 165], [10, 160], [11, 145] ],
    points: {
        show: true,
        symbol: "cross"
    },
    lines: { show: false },
    color: "#81A0C1"
},
{
    data: [ [0, 150], [3, 160], [5, 150], [7, 170], [8, 155] ],
    points: {
        show: true,
        symbol: "circle"
    },
    lines: { show: false },
    color: "#81A0C1"
}];

可以对所有数据点重复此过程,由您的实现决定如何将点分组到每个符号中。在这个例子中,我将每个系列的颜色设置为相同的颜色,但如果你想让不同的符号有不同的颜色,你也可以为每个系列使用不同的颜色。

这个example显示了完整的示例。