2012-07-23 68 views
1

我正在使用Androidplot库来绘制条形图以显示某些内容。 我的数值范围是-40至+40Androidplot负面条形图

如何绘制一个酒吧到消极的一面?我只想将中间的零点置于y轴的中间位置,并且条形应该长大或缩小,如果该值是否定的。我的酒吧正在从下界向上发展。它应该看起来像这样: enter image description here

+1

我想找出一个基本的条形图与Android的情节,你碰巧有一个基本的示例代码来做到这一点? – 2012-10-26 23:42:04

回答

0

这是一个很好的问题。我认为没有办法用当前版本的AndroidPlot(0.6.0)做到这一点,只有一系列值。 我在我的项目中创建了一个解决方法。我知道这不是完美的,但它的工作原理是:创建两个重叠的系列,一个用绿色,一个用背景色。假设你有你的currentValue画..

if (currentValue>=0) { 
    greenRes[i] = Float.valueOf(currentValue); 
    coverRes[i] = Float.valueOf(0); 
} 
else { 
    greenRes[i] = Float.valueOf(0); 
    coverRes[i] = Float.valueOf(currentValue); 
} 

这样你总是有绿色的酒吧,从零轴开始,并向上或向下。

+0

你能提供关于如何使用它的代码片段吗? – bgplaya 2014-05-12 11:32:42

1

这对我的作品:

plot.centerOnRangeOrigin(0);

plot.setRangeLowerBoundary(0,BoundaryMode.AUTO);

其中plot是XYPlot的一个实例。

1

最近已经向Androidplot添加了负面条形支持0.6.2;你需要使用latest development version来得到它(它非常稳定)。

一旦你有Androidplot的正确版本,你可以使用玛丽亚雷纳的建议来启用显示负值。以下是我正在做下面的截图:

plot.setUserRangeOrigin(0); 
plot.setRangeBoundaries(0, BoundaryMode.AUTO, 0,BoundaryMode.AUTO); 

enter image description here

注:目前在那里,如果你正在使用叠加模式2个以上的系列,并有负杆的错误,负线条的叠加顺序相反,导致条形组中较小的负值被较大的负值所遮蔽。如果你的目标只是重现上面的图像,那么你应该没问题。

+0

非常感谢我真的需要这个功能,并没有得到为什么它使用0.6.1时不工作。 – Kalem 2014-08-19 13:39:24

+0

只需稍微精确一点:BoundaryMode.AUTO在这里不是强制性的。当你需要修改你的边界时,你也可以使用BoundaryMode.FIXED,例如'plot.setRangeBoundaries(min,max,BoundaryMode.FIXED);'其中min是一个负值或不是,这仍然有效。 – Kalem 2014-08-19 14:16:08

+0

@Nick在最近的jar文件中发生了一些变化,使其不再有效?我下载了最新的AndroidPlot 0.6.2(androidplot-core-0.6.2-SNAPSHOT),我无法让centerOnRangeOrigin像我预期的那样工作。 centerOnDomainOrigin按预期工作。有任何想法吗? – buczek 2015-03-02 23:14:07