我遇到了一个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中的视图定义(当然主容器是RelativeLayout):
<LinearLayout
android:id="@+id/graphHolder"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:minHeight="200dp">
</LinearLayout>
有几件事:
显然,我做错了什么,但我不知道是什么。非常感谢任何帮助。
PS。我试图将它贴在achartengine组上,但看起来这些冬天正在冬眠;)。
答案 0 :(得分:0)
我终于有时间重新调查这一点了,并把它想出来了。
要点:
底部的栏是图例。我的代码中有一个错误导致它为每个数据点创建一个系列,因此在实际的图例图形中有多个“条形”。该系列没有名字,这增加了混乱。
修复错误并添加setShowLegend(false)处理问题。
我在评估AndroidPlot时已经发现了这一点(顺便说一句,我推荐它作为achartengine的替代品,因为图形可以用XML定义,并且可以比截图显示的图形更自由地定制)。 / p>
我在某种程度上没有注意到achartengine截图中的传说,但我在AndroidPlot中认出了它们。是的,我现在觉得很愚蠢:)。