Android GraphView条形图高度

时间:2012-02-22 17:18:11

标签: android charts

我一直试图创建一个显示食品库存水平随时间下降的条形图。

I used the sample code from here:

我在GraphViewDemo中略微更改了代码以在Y轴上容纳4个值:

(“好”,“好”,“好”和“坏”)和X轴上的4个值

(“今天”,“明天”,“2天”,“3天”)

并希望了解库存水平如何随着时间的推移而降低。这里的代码应该显示条形从坏到大增加:

    float[] values = new float[] { 1.0f,1.5f, 2.0f, 2.5f };
    String[] verlabels = new String[] { "great", "good", "ok", "bad"};
    String[] horlabels = new String[] { "today", "tomorrow", "2 days", "3 days" };
    GraphView graphView = new GraphView(this, values, "Stock Levels",horlabels, verlabels, GraphView.BAR);
    setContentView(graphView);

数字1.0f,1.5f,2.0f,2.5f没问题。问题是,如果我将第一个浮点数改为2.0(期望第一个柱子改为“好”的高度),则所有柱都会改变。

在这种情况下,视图将更改为第一个和第三个条形高度介于“ok”和“good”之间,第二个条形高度为“bad”。

这可能与第94行附近的GraphView类中的像素转换有关,但代码评论不是很好,我发现很难理解所有内容。

1 个答案:

答案 0 :(得分:0)

问题似乎与GraphView类中的这一行有关:

canvas.drawRect((i * colwidth) + horstart, (border - h) + graphheight, ((i * colwidth) + horstart) + (colwidth - 1), height - (border - 1), paint);

所以我在图表上找到了4个高度的值(“好”,“好”,“好”,“坏”)并创建了一个设置变量的switch语句。该开关将采用值1.0,1.5,2.0和2.5,并将其与相应的条形高度相关联。

然后我用变量替换了高度,而不是以下计算“(border-h)+ graphheight”。这样,酒吧只有4个高度。