如何在 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>