如何在Highcharts中为多Y轴配置对应刻度单位(ESP32 ADC数据转电压刻度场景)
解决Highcharts右侧Y轴显示ADC对应电压刻度的问题
完全不需要重新绘制数据,只需要修改右侧Y轴的标签格式化规则就能实现你的需求。因为你已经设置了linkedTo: 0,右侧轴和左侧轴共享同一组数值,我们只需要把原始ADC值通过公式转换成电压显示出来就行。
下面是修改后的完整Y轴配置代码,重点调整了右侧轴的labels.format:
yAxis: [ { // left y axis title: { text: 'RAW ADC Value' }, labels: { align: 'left', x: 3, y: 16, format: '{value:.,0f}' }, showFirstLabel: false }, { // right y axis linkedTo: 0, gridLineWidth: 0, opposite: true, title: { text: 'Voltage (V)' }, labels: { align: 'right', x: +3, y: 16, // 用Highcharts格式化语法计算电压,保留3位小数 format: '{value * 3.3 / 4096:.3f} V' }, showFirstLabel: false } ],
关键说明:
{value * 3.3 / 4096:.3f}是核心逻辑:{value}代表当前刻度的原始ADC值,代入你的公式计算后,用.3f指定保留三位小数,刚好匹配你例子中1200对应0.997V的结果- 由于右侧轴和左侧轴是关联状态,数据点不需要做任何修改,刻度会自动同步对应
- 如果需要调整小数位数,比如显示两位小数,只需要把
.3f改成.2f即可
内容的提问来源于stack exchange,提问作者Forrest Erickson
相关产品推荐
相关产品推荐

