Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在相对图中绘制不正确_Java_Android_Achartengine - Fatal编程技术网

Java 在相对图中绘制不正确

Java 在相对图中绘制不正确,java,android,achartengine,Java,Android,Achartengine,我对achartengine图形有一个问题-如此屏幕截图所示: 看起来X轴被赋予了太多的底部填充,并且值被复制。每个值的一个表示形式在图形中,并对平移做出正确反应,而另一个位于图形视图的底部,但无法以任何方式进行操作 以下是用于创建图形的代码: protected void onCreate(Bundle savedInstanceState) { ... gDataset = new XYMultipleSeriesDataset(); gRe

我对achartengine图形有一个问题-如此屏幕截图所示:

看起来X轴被赋予了太多的底部填充,并且值被复制。每个值的一个表示形式在图形中,并对平移做出正确反应,而另一个位于图形视图的底部,但无法以任何方式进行操作

以下是用于创建图形的代码:

protected void onCreate(Bundle savedInstanceState) {
        ...
        gDataset = new XYMultipleSeriesDataset();

        gRenderer = new XYMultipleSeriesRenderer();
        gRenderer.setApplyBackgroundColor(true);
        gRenderer.setPointSize(10);

        chart = new TimeBarChart(gDataset, gRenderer);
        graphView = new GraphicalView(this, chart);
        graphHolder.addView(graphView);
        //Mode is just an internal enum
        chart.setDateFormat(curMode == Mode.DAY ? "HH:mm dd.MM.yyyy" : "dd.MM.yyyy");
        ....
}
要填充它,请执行以下操作:

...
//some DB stuff goes here, result is the cursor

curSeries = new XYSeries("");
gDataset.addSeries(curSeries);

XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.RED);
renderer.setPointStyle(PointStyle.POINT);
gRenderer.addSeriesRenderer(renderer);
while (!result.isAfterLast()) {
    .....
    curSeries.add(timestamp,value);
      ....
}
.....
graphView.invalidate();
graphView.repaint();
这里是布局XML主容器中的graph holder的视图定义,当然是相对的:

<LinearLayout
    android:id="@+id/graphHolder"
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:layout_alignParentTop="true"
    android:minHeight="200dp">
</LinearLayout>
有几件事:

我使用的是0.7版本。 TimeBarChart类只是一个TimeChart,只需对其进行简单的更改即可扩展BarChart。该代码是从0.7版本复制的。不管怎样,我以前使用过ChartFactorygetTimeChartView,结果是一样的——所以这不是问题的原因。 我试着检查height layout参数是否会导致问题,但事实并非如此。 graphHolder由RoboGuice注射。 该问题在2.3仿真程序中遇到。 显然,我做错了什么,但我不知道该怎么做。非常感谢您的帮助


顺便说一句,我试着把它贴在achartengine组上,但看起来mods正在冬眠

我终于有时间重新调查这个问题,并找到了答案

要点:

底部的条形图是图例。我的代码中有一个bug,导致它为每个数据点创建了一个系列,因此实际上是多条图例图形。这个系列没有名字,这增加了混乱

修复错误并添加setShowLegendfalse可以解决此问题

顺便说一句,我在评估时发现了这一点,我推荐它作为achartengine的替代品,因为图形可以用XML定义,并且可以比屏幕截图所显示的更自由地进行图形定制


不知何故,我没有注意到achartengine屏幕截图中的传奇,但我在AndroidPlot中认出了它们。是的,我现在确实觉得自己很愚蠢:。

现在,你是在那个项目中使用AChartEngine还是AndroidPlot?achartengine目前正在使用,但主要是因为我已经投入了更多的时间来调整它。如果我能从我现有的知识开始,我会先给AndroidLot一个机会。并不是说阿喀丁净很可怕或是其他什么,只是安卓德洛特拥有答案中所述的优势。谢谢你分享你的经验。