Android - achartengine 条形图问题

标签 android bar-chart achartengine

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

1:顶部栏的值未居中

2: 当图表中只有 1 个柱时,柱的宽度太小

enter image description here

enter image description here

这是我设置图表的代码

    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 得到解决。谢谢你,丹。

最佳答案

对于第一个问题,您可能希望升级到 1.2.0 每晚构建。

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

关于Android - achartengine 条形图问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21870566/

相关文章:

android - 使用 AchartEngine 如何更改饼图中图表值的颜色?

java - AChartEngine 绘图、ArrayList 索引

java - 无法在 AsyncTask 的 onPostExecute 方法上显示 Toast 或 AlertDialog

android - 从自定义 View 接收日文键盘输入

python - 如何在 matplotlib 和 seaborn 中为不同图表中的相同索引设置相同的颜色

android - (AChartEngine) 如何设置默认缩放比例?如何设置自定义字体样式?

android - NotificationManager 无法显示带有 "notify: id corrupted: sent 1, got back 0"警告的通知

java - getLastKnownLocation 的替代方案

python matplotlib 增加条形标签字体大小

android - Achartengine 条形图设置边距颜色 - 如何将图像添加到边距?