如何在 LightningChart JS 中仅对一个轴应用 tickStrategy 格式化程序?
How to apply tickStrategy formatter only for one axis in LightningChart JS?
我用 lightningChart JS 创建了一个图表,想格式化我的 y 轴刻度标签。
正常的做法应该是使用tickStrategy.formatValue
函数:
const axisY = chart.getDefaultAxisY()
axisY.tickStrategy.formatValue = (value, range) => {
return value + ' Y';
};
如果我这样做,两个轴标签都被格式化为 (X, Y) 而不是只有 y 轴。
所以我的问题是如何只为一个轴应用格式器?
请查看我的代码片段,我在其中尝试更改 x 和 y 的标签。但是对于两个轴,一个都会覆盖另一个。
const {
lightningChart,
} = lcjs
const chart = lightningChart().ChartXY()
const axisX = chart.getDefaultAxisX()
const axisY = chart.getDefaultAxisY()
const tickX = axisX.tickStrategy.formatValue = (value, range) => {
return value + ' X';
};
const tickY = axisY.tickStrategy.formatValue = (value, range) => {
return value + ' Y';
};
<script src="https://unpkg.com/@arction/lcjs@1.3.1/dist/lcjs.iife.js"></script>
好吧,解决方案很简单,但不是很明显。
我必须创建一个默认轴策略并使用 Object.assign({})
复制 Numeric defaultAxisXTickStrategy。
const chart = lightningChart().ChartXY({
defaultAxisXTickStrategy: Object.assign({}, AxisTickStrategies.Numeric)
})
之后格式化程序函数具有预期的行为。
const {
lightningChart,
AxisTickStrategies
} = lcjs
const chart = lightningChart().ChartXY({
defaultAxisXTickStrategy: Object.assign({}, AxisTickStrategies.Numeric)
});
const axisX = chart.getDefaultAxisX();
const axisY = chart.getDefaultAxisY();
const tickX = axisX.tickStrategy.formatValue = (value, range) => {
return value + ' X';
};
const tickY = axisY.tickStrategy.formatValue = (value, range) => {
return value + ' Y';
};
<script src="https://unpkg.com/@arction/lcjs@1.3.1/dist/lcjs.iife.js"></script>
我用 lightningChart JS 创建了一个图表,想格式化我的 y 轴刻度标签。
正常的做法应该是使用tickStrategy.formatValue
函数:
const axisY = chart.getDefaultAxisY()
axisY.tickStrategy.formatValue = (value, range) => {
return value + ' Y';
};
如果我这样做,两个轴标签都被格式化为 (X, Y) 而不是只有 y 轴。
所以我的问题是如何只为一个轴应用格式器?
请查看我的代码片段,我在其中尝试更改 x 和 y 的标签。但是对于两个轴,一个都会覆盖另一个。
const {
lightningChart,
} = lcjs
const chart = lightningChart().ChartXY()
const axisX = chart.getDefaultAxisX()
const axisY = chart.getDefaultAxisY()
const tickX = axisX.tickStrategy.formatValue = (value, range) => {
return value + ' X';
};
const tickY = axisY.tickStrategy.formatValue = (value, range) => {
return value + ' Y';
};
<script src="https://unpkg.com/@arction/lcjs@1.3.1/dist/lcjs.iife.js"></script>
好吧,解决方案很简单,但不是很明显。
我必须创建一个默认轴策略并使用 Object.assign({})
复制 Numeric defaultAxisXTickStrategy。
const chart = lightningChart().ChartXY({
defaultAxisXTickStrategy: Object.assign({}, AxisTickStrategies.Numeric)
})
之后格式化程序函数具有预期的行为。
const {
lightningChart,
AxisTickStrategies
} = lcjs
const chart = lightningChart().ChartXY({
defaultAxisXTickStrategy: Object.assign({}, AxisTickStrategies.Numeric)
});
const axisX = chart.getDefaultAxisX();
const axisY = chart.getDefaultAxisY();
const tickX = axisX.tickStrategy.formatValue = (value, range) => {
return value + ' X';
};
const tickY = axisY.tickStrategy.formatValue = (value, range) => {
return value + ' Y';
};
<script src="https://unpkg.com/@arction/lcjs@1.3.1/dist/lcjs.iife.js"></script>