是否可以使用 Highcharts 在面积图上设置 upColor?
Is it possible to have an upColor on a Area graph using Highcharts?
我有一张面积图,想知道是否可以在它上升时使用上色。 upColor 选项适用于瀑布图、蜡烛图。如果可能的话,任何人都有想法的面积图怎么样?以下是我系列的片段。
series: [ {
upColor: Highcharts.getOptions().colors[2],
data: AreaData,
type: 'area',
name: 'NAV',
id: 'GG'
}
],
[1483074000000, 529565.95]
[1485838800000, 581409.01]
[1488258000000, 635260.08]
[1490932800000, 664102.35]
[1493352000000, 638819.73]
[1493524800000, 638819.73]
[1494475200000, 638911]
[1494561600000, 689111.15]
[1494820800000, 717497.05]
[1494907200000, 720143.97]
[1494993600000, 724890.17]
根据评论 - 区域系列没有实现 upColor 功能来更改增加数据的颜色。在这种情况下可以做的是使用 zones
功能来填充该区域的特定部分。
演示:https://jsfiddle.net/BlackLabel/73pm4awq/
events: {
load() {
const chart = this,
series = chart.series[0],
points = series.points,
zones = [];
series.points.forEach((p, i) => {
if (points[i + 1] && p.y < points[i + 1].y) {
zones.push({
value: points[i + 1].x,
color: 'green'
})
} else {
zones.push({
value: p.x,
color: 'red'
})
}
});
series.update({
zones: zones
})
}
}
API: https://api.highcharts.com/highcharts/series.line.zones
API: https://api.highcharts.com/class-reference/Highcharts.Series#update
我修改了@Sebastian 的回复以将每个点与系列中的第一个点进行比较。 “自成立以来”
events: {
load() {
const chart = this,
series = chart.series[0],
points = series.points,
zones = [];
series.points.forEach((p, i) => {
if ( points[0].y < points[i].y ) {
zones.push({
value: points[i].x,
color: 'green'
})
} else {
zones.push({
value: p.x,
color: 'red'
})
}
});
series.update({
zones: zones
})
}
}
除了 zoneAxis 属性 series.zoneAxis 之外,它“定义应用区域的轴。”根据文档。
zoneAxis:'x'
我有一张面积图,想知道是否可以在它上升时使用上色。 upColor 选项适用于瀑布图、蜡烛图。如果可能的话,任何人都有想法的面积图怎么样?以下是我系列的片段。
series: [ {
upColor: Highcharts.getOptions().colors[2],
data: AreaData,
type: 'area',
name: 'NAV',
id: 'GG'
}
],
[1483074000000, 529565.95]
[1485838800000, 581409.01]
[1488258000000, 635260.08]
[1490932800000, 664102.35]
[1493352000000, 638819.73]
[1493524800000, 638819.73]
[1494475200000, 638911]
[1494561600000, 689111.15]
[1494820800000, 717497.05]
[1494907200000, 720143.97]
[1494993600000, 724890.17]
根据评论 - 区域系列没有实现 upColor 功能来更改增加数据的颜色。在这种情况下可以做的是使用 zones
功能来填充该区域的特定部分。
演示:https://jsfiddle.net/BlackLabel/73pm4awq/
events: {
load() {
const chart = this,
series = chart.series[0],
points = series.points,
zones = [];
series.points.forEach((p, i) => {
if (points[i + 1] && p.y < points[i + 1].y) {
zones.push({
value: points[i + 1].x,
color: 'green'
})
} else {
zones.push({
value: p.x,
color: 'red'
})
}
});
series.update({
zones: zones
})
}
}
API: https://api.highcharts.com/highcharts/series.line.zones
API: https://api.highcharts.com/class-reference/Highcharts.Series#update
我修改了@Sebastian 的回复以将每个点与系列中的第一个点进行比较。 “自成立以来”
events: {
load() {
const chart = this,
series = chart.series[0],
points = series.points,
zones = [];
series.points.forEach((p, i) => {
if ( points[0].y < points[i].y ) {
zones.push({
value: points[i].x,
color: 'green'
})
} else {
zones.push({
value: p.x,
color: 'red'
})
}
});
series.update({
zones: zones
})
}
}
除了 zoneAxis 属性 series.zoneAxis 之外,它“定义应用区域的轴。”根据文档。
zoneAxis:'x'