gpt4 book ai didi

android - MPAndroidChart - 基于值的不同颜色的折线图

转载 作者:行者123 更新时间:2023-11-29 16:46:20 37 4
gpt4 key购买 nike

我正在使用 MPAndroidChart在我的应用程序中制作图表的库。我需要创建如下图所示的图表。我需要 LineChart 上的渐变线,它的颜色必须基于值。例如红色代表高,黄色代表中,绿色代表低。

enter image description here

据我尝试,我设法得到如下结果。

enter image description here

我找了一天想找到解决办法,但是没有找到任何解决办法。因此,如果你们中有人知道如何解决这个问题或对此有任何想法,请与我分享。谢谢。

最佳答案

来自 codereview.stackexchange.com 的解决方案为我工作。

_

protected void drawCubicBezier(ILineDataSet dataSet) {
...
// Get screen coordinates for min Y value
MPPointD pixelForValues = trans.getPixelForValues(0, minDy);
minDy = (float) pixelForValues.y;
MPPointD.recycleInstance(pixelForValues);

// Get screen coordinates for max Y value
pixelForValues = trans.getPixelForValues(0, maxDy);
maxDy = (float) pixelForValues.y;
MPPointD.recycleInstance(pixelForValues);

// Get screen coordinates for 0 value
pixelForValues = trans.getPixelForValues(0, 0);
float zeroDy = (float) pixelForValues.y;
MPPointD.recycleInstance(pixelForValues);

float range = minDy - maxDy;
float zeroPointNormalized = Math.max((zeroDy - maxDy) / range, 0);

linearGradient = new LinearGradient(
0, maxDy, 0, minDy,
new int[]{Color.RED, Color.RED, Color.BLUE, Color.BLUE},
new float[]{0, zeroPointNormalized, zeroPointNormalized, 1f},
Shader.TileMode.REPEAT);
paint.setShader(linearGradient);
...
mBitmapCanvas.drawPath(cubicPath, paint);

关于android - MPAndroidChart - 基于值的不同颜色的折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47949632/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com