如何在折线图中的指定点添加额外的标签?

How to add extra labels at specified points in LineChart?

我想向 LineChart (MPAndroidChart) 添加一些额外的标签,如下图所示。注意 "Advanced"、"Novice" 等标签。

我如何将它们添加到指定的 y 轴位置,以便它们始终像 y 轴标签一样显示,但可能如图所示显示在图表的内部 - 或者在必要时显示在右侧?

更新:

我需要的只是一些 LimitLines 这样的东西:

LimitLine noviceline = new LimitLine( SSGlobals.getWeightinPreferredUnits_fromPounds(standardweightsarr[2]) , getString(R.string.novice));
                        noviceline.setLineColor(ContextCompat.getColor(getActivity(), R.color.accentline));
                        noviceline.setTextColor(ContextCompat.getColor(getActivity(), R.color.accentline));
                        noviceline.setTextSize(12);
                        noviceline.setLineWidth(4);

我可能会设计得更多一些,但到目前为止,结果如下所示:

这里有几个选项。

您可以查看 LimitLines 是否符合您的目的 - 它们可以配置为这样的标签:

    LimitLine llXAxis = new LimitLine(10f, "Index 10");
    llXAxis.setLineWidth(4f);
    llXAxis.enableDashedLine(10f, 10f, 0f);
    llXAxis.setLabelPosition(LimitLabelPosition.RIGHT_BOTTOM);
    llXAxis.setTextSize(10f);
    xAxis.addLimitLine(llXAxis); 

您还可以在带有 TextView 的图表上使用 FrameLayout 来获取您想要添加的额外信息。参见这个 问题 类似的问题, 如何在图表值和屏幕像素坐标之间转换。

或者,您可以扩展渲染器本身来绘制您的自定义文本。如果您想尝试,请参阅