android - 将 Y 轴最小值设置为负值不起作用

标签 android achartengine

我正在构建一个 Android 应用程序,我正在使用 AChartEngine 来显示我获得的图表和值。

但是,有时我获得的值包含负值,折线图会下降,但我不明白我的意思。我已经尝试过:

mRenderer.setYAxisMin(-20);

其中 mRenderer 是一个 XYMultipleSeriesRenderer,但是,我的图形最小 y 值仍然是 0,用户必须平移才能看到负值。

有没有办法将图形设置为最小值为负数?

这是我渲染图表的全部代码:

    renderer3 = new XYSeriesRenderer();
    renderer3.setLineWidth(2);
    renderer3.setColor(Color.GREEN);
    renderer3.setDisplayBoundingPoints(true);
    renderer3.setPointStyle(PointStyle.CIRCLE);
    renderer3.setPointStrokeWidth(3);
    renderer3.setAnnotationsTextSize(20);

    renderer3.setAnnotationsColor(Color.BLACK);
    renderer3.setAnnotationsTextAlign(Paint.Align.RIGHT);
    renderer3.setAnnotationsTextSize(25);

    XYMultipleSeriesDataset dataSet = new XYMultipleSeriesDataset();
    dataSet.addSeries(accelerationSeries);

    XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
    mRenderer.addSeriesRenderer(renderer3);

    mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00)); // transparent margins
    mRenderer.setPanEnabled(true, true);
    mRenderer.setYAxisMax(10);
    mRenderer.setYAxisMin(-10);
    mRenderer.setYAxisMin(0);
    mRenderer.setShowGrid(true); // we show the grid

    mRenderer.setAxisTitleTextSize(40);
    mRenderer.setShowAxes(true);
    mRenderer.setShowCustomTextGrid(true);
    mRenderer.setShowCustomTextGridY(true);

    mRenderer.setYTitle("Acceleration (Meters/Second Squared)");
    mRenderer.setXTitle("Time (Seconds)");
    mRenderer.setMarginsColor(Color.argb(0, 255, 255, 255));
    mRenderer.setAxesColor(Color.BLACK);
    mRenderer.setLabelsColor(Color.BLACK);
    mRenderer.setXLabelsColor(Color.BLACK);
    mRenderer.setYLabelsColor(0, Color.BLACK);
    mRenderer.setAxisTitleTextSize(20);
    mRenderer.setLabelsTextSize(25);
    mRenderer.setYLabelsAlign(Paint.Align.RIGHT);
    mRenderer.setSelectableBuffer(25);
    mRenderer.setMargins(new int[]{ 100, 100, 100, 100 });

    mRenderer.setLegendTextSize(40);
    mRenderer.setGridColor(Color.GRAY);

    GraphicalView chartView = ChartFactory.getLineChartView(getBaseContext(), dataSet, mRenderer);

最佳答案

这里:

mRenderer.setYAxisMin(-10);
mRenderer.setYAxisMin(0);

第二个调用覆盖第一个。

因此,您首先将最小值设置为-10
不久之后,您将其重新设置为 0

解决办法是去掉

mRenderer.setYAxisMin(0);

关于android - 将 Y 轴最小值设置为负值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29789111/

相关文章:

android - mdpi、hdpi、xhdpi 文件夹如何工作?

android - 如何向 SlidingTabLayout 添加标签?

android - 如何在 Kotlin Android 的 DatePicker 中禁用 future 日期

java - 使用 BroadcastReceiver 几秒钟后启动新的 Activity

android - 如何在AChartEngine中绘制两个不同比例的Y轴

android - Retrofit、Gson 和一组异构对象

android - 一个屏幕上的两个图形

android - 绘制动态图表以显示声音的分贝数

android - aChartEngine:使用多种颜色绘制系列下方的区域时不显示底层系列

android - 如何在 Android 的 AChartEngine 中增加 X 或 Y 轴标签大小并启用缩放