在 MPAndroidChart 中,如何将 X 轴标签分成两条线?对使用任何修改后的库不感兴趣
Posted
技术标签:
【中文标题】在 MPAndroidChart 中,如何将 X 轴标签分成两条线?对使用任何修改后的库不感兴趣【英文标题】:In MPAndroidChart, how to split X axis label into two lines? Not interested in using any modified library 【发布时间】:2021-12-19 06:17:30 【问题描述】:设置自定义 X 轴渲染器无助于在水平条形图中将 x 轴标签拆分为多行。
barChart.setXAxisRenderer(CustomXAxisRenderer(barChart.viewPortHandler, xAxis, barChart.getTransformer(yAxis.axisDependency)))
我对使用 MPandroidChart 库的任何修改版本不感兴趣。
class CustomXAxisRenderer(viewPortHandler: ViewPortHandler?, xAxis: XAxis?, trans: Transformer?) : XAxisRenderer(viewPortHandler, xAxis, trans)
override fun drawLabel(c: Canvas?, formattedLabel: String, x: Float, y: Float, anchor: MPPointF?, angleDegrees: Float)
val line: List<String> = formattedLabel.split("\n")
Utils.drawXAxisValue(c, line[0], y, x, mAxisLabelPaint, anchor, angleDegrees)
for (i in 1 until line.size) // we've already processed 1st line
Utils.drawXAxisValue(c, line[i], y, x + mAxisLabelPaint.textSize * i,
mAxisLabelPaint, anchor, angleDegrees)
请告诉我任何解决方案。
【问题讨论】:
【参考方案1】: class CustomXAxisRenderer(viewPortHandler: ViewPortHandler?, xAxis: XAxis?, trans: Transformer?, chart: HorizontalBarChart) : XAxisRendererHorizontalBarChart(viewPortHandler, xAxis, trans, chart)
override fun drawLabel(c: Canvas?, formattedLabel: String, x: Float, y: Float, anchor: MPPointF?, angleDegrees: Float)
val line: List<String> = formattedLabel.split("\n")
Utils.drawXAxisValue(c, line[0], x, y, mAxisLabelPaint, anchor, angleDegrees)
for (i in 1 until line.size)
Utils.drawXAxisValue(c, line[i], x, y + mAxisLabelPaint.textSize * i,
mAxisLabelPaint, anchor, angleDegrees)
这样就解决了上面的问题。
【讨论】:
以上是关于在 MPAndroidChart 中,如何将 X 轴标签分成两条线?对使用任何修改后的库不感兴趣的主要内容,如果未能解决你的问题,请参考以下文章
MPAndroidChart:如何以固定间隔设置 x 轴标签
在 mpandroidchart 的 x 轴上实现连续的日期时间标签
mpandroidchart - 如何避免 Y 轴中的重复值?