You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MPAndroidChart柱状图X轴与条形不对齐及横向滚动实现问题

解决BarChart X轴标签与条形对齐及左右滚动问题

一、X轴标签与条形对齐

你的代码中X轴标签和条形错位,核心是未配置X轴标签居中规则,且未匹配条形宽度调整刻度范围。需添加以下设置:

  • 开启X轴标签居中对齐:chart.xAxis.setCenterAxisLabels(true)
  • 设置X轴刻度间隔为1(对应每个条形的索引位置):chart.xAxis.granularity = 1f
  • 调整X轴起始/结束范围,让条形完全贴合刻度:
    chart.xAxis.axisMinimum = -barData.barWidth / 2
    chart.xAxis.axisMaximum = labels.size - barData.barWidth / 2
    

二、开启左右滚动功能

默认BarChart未启用拖拽滚动,需手动开启:

  • 开启横向拖拽:chart.setDragEnabled(true)
  • 可选:关闭不需要的缩放功能(仅保留滚动):chart.setScaleEnabled(false),或仅允许X轴缩放:chart.setScaleYEnabled(false)
  • 防止首尾标签被裁剪:chart.xAxis.setAvoidFirstLastClipping(true)

修改后的完整代码

val sortedMap: MutableMap<String, Int> = TreeMap(value2)
val chart = findViewById<BarChart>(R.id.barChart)
chart.setDrawBarShadow(false)
chart.setDrawValueAboveBar(true)
chart.description.isEnabled = false
chart.setPinchZoom(false)
chart.setDrawGridBackground(false)

// 开启拖拽滚动
chart.setDragEnabled(true)
chart.setScaleEnabled(false) // 关闭整体缩放,只保留滚动
chart.setScaleYEnabled(false) // 禁止Y轴缩放,可选

val labels = ArrayList<String>()
for ((keys, _) in sortedMap.entries) {
    labels.add(keys)
}

val list2 = ArrayList<BarEntry>()
var i = 0
for ((_, values) in sortedMap.entries) {
    list2.add(BarEntry(i.toFloat(), values.toFloat()))
    i++
}

val dataset = BarDataSet(list2, "Legend")
dataset.colors = ColorTemplate.MATERIAL_COLORS.toList()
val barData = BarData(dataset)
barData.barWidth = 0.4f
chart.data = barData

// X轴对齐配置
chart.xAxis.valueFormatter = IndexAxisValueFormatter(labels)
chart.xAxis.position = XAxis.XAxisPosition.BOTTOM
chart.xAxis.setCenterAxisLabels(true)
chart.xAxis.granularity = 1f
chart.xAxis.axisMinimum = -barData.barWidth / 2
chart.xAxis.axisMaximum = labels.size - barData.barWidth / 2
chart.xAxis.setAvoidFirstLastClipping(true)

chart.axisLeft.axisMinimum = 0f
chart.axisRight.axisMinimum = 0f
chart.axisRight.setDrawLabels(false)
chart.legend.isEnabled = false
chart.animateY(500)
chart.invalidate()

内容的提问来源于stack exchange,提问作者Ajay Satpati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:42:01