【问题标题】:Android - achartengine bar chart issuesAndroid - achartengine 条形图问题
【发布时间】:2014-02-19 03:43:58
【问题描述】:

我使用 achartengine 在 android 应用程序中绘制图表,但条形图有 2 个问题。

1:顶部栏的值不居中对齐

2:图表中只有 1 个条时条的宽度太小

这是我设置图表的代码

    GraphicalView mChart;
    // Creating an  XYSeries for Income
    XYSeries incomeSeries = new XYSeries("\n" + note);
    // Adding data to Series
    // Arraylist<String> althongtin include input data (some numbers character, eg: {125, 4356, 50000})
    for(int i=0;i<althongtin.size();i++){
        incomeSeries.add(i, Double.parseDouble(althongtin.get(i)));
    }

    // Creating a dataset to hold each series
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    // Adding Income Series to the dataset
    dataset.addSeries(incomeSeries);
    XYSeriesRenderer incomeRenderer = new XYSeriesRenderer();

    incomeRenderer.setColor(color);
    incomeRenderer.setChartValuesTextSize(20);
    incomeRenderer.setFillPoints(true);
    incomeRenderer.setDisplayChartValues(true);
    incomeRenderer.setChartValuesTextAlign(Paint.Align.CENTER);

    XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();

    multiRenderer.setXLabels(0);
    multiRenderer.setChartTitle(ten);
    multiRenderer.setXTitle(cotx);
    multiRenderer.setYTitle(coty);
    multiRenderer.setYLabelsAlign(Paint.Align.LEFT);
    multiRenderer.setBarSpacing(1);
    multiRenderer.setBarWidth(50);

    multiRenderer.setYAxisMin(0);
    multiRenderer.setYAxisMax(max + (max/10));
    multiRenderer.setXAxisMin(-1);
    multiRenderer.setXAxisMax(althongtin.size() + 1);
    multiRenderer.setLabelsTextSize(15);
    multiRenderer.setLegendTextSize(20);
    multiRenderer.setAxisTitleTextSize(20);
    multiRenderer.setChartTitleTextSize(20);

    multiRenderer.setLabelsColor(Color.BLACK);
    multiRenderer.setAxesColor(Color.BLACK);
    multiRenderer.setApplyBackgroundColor(true);
    multiRenderer.setBackgroundColor(Color.TRANSPARENT);
    multiRenderer.setMarginsColor(Color.argb(0,255,255,255));
    multiRenderer.setXLabelsColor(Color.BLACK);
    multiRenderer.setYLabelsColor(0, Color.BLACK);

    multiRenderer.addSeriesRenderer(incomeRenderer);

    String[] types = new String[] {BarChart.TYPE};

    mChart = (GraphicalView) ChartFactory.getCombinedXYChartView(getBaseContext(), dataset, multiRenderer, types);

    multiRenderer.setClickEnabled(true);
    multiRenderer.setSelectableBuffer(10);

    chartLayout.addView(mChart);

谢谢。

更新:第二个问题已通过升级到 achartengine 1.2.0 得到修复。谢谢你,丹。

【问题讨论】:

  • 你上面的代码没问题。你的数据集代码和GraphicalView呢?
  • @UnokenMouny 嗨,我可以知道你是如何设置条形之间的间距的吗?当我使用“multiRenderer.setBarSpacing(1);”时它对我不起作用谢谢。

标签: android bar-chart achartengine


【解决方案1】:

对于第一个问题,您可能希望升级到 1.2.0 nightly build。

对于第二个,有:renderer.setBarWidth(widthInPixels);,因为这是在系列中只有一个项目时设置条形宽度的解决方案。

【讨论】:

  • =)) 哦,伙计....我升级到 1.2.0 并且第二个问题已修复.....但第一个问题仍然没有变化...awww
  • @dan 嘿,我在 alin 中心遇到了同样的问题?你有解决方案吗?另一个是我不能只改变颜色条值而不是条形图?我们需要带有对齐中心的黑色条形值。请帮助
【解决方案2】:

为什么不使用 ChartFactory.getBarChartView 而不是 ChartFactory.getCombinedXYChartIntent

我认为它会解决你的问题。

【讨论】:

  • 没有改变,我仍然遇到同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多