Как избежать обрезки графика и настроить площадь графика в android XYPlot - PullRequest
0 голосов
/ 02 февраля 2020

Что я сделал: Я пытаюсь ознакомиться (я использую android studio 3.5) с XYPlot, следуя этому примеру. В итоге я получил этот график ниже. Я попытался отрегулировать поля макета, но результат был таким же.

Наблюдение: enter image description here

То, что я ищу: Я хочу настроить площадь участка на показать всю информацию. Здесь показано, как настроить график, чтобы отображать легенду и левые поля без отсечения.

main_activity. xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >

        <com.androidplot.xy.XYPlot
            android:id="@+id/mySimpleXYPlot"
            android:layout_width="fill_parent"
            android:layout_height="527dp"
            android:layout_marginLeft="10px"
            android:layout_marginTop="10px"
            android:layout_marginRight="10px" />
    </LinearLayout>

**main activity:**
package com.example.plot_testmy2;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;

import com.androidplot.Plot;
import com.androidplot.xy.LineAndPointFormatter;
import com.androidplot.xy.SimpleXYSeries;
import com.androidplot.xy.XYPlot;
import com.androidplot.xy.XYSeries;

import java.util.Arrays;

public class MainActivity extends AppCompatActivity {

    private XYPlot plot;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // initialize our XYPlot reference:
        plot = (XYPlot) findViewById(R.id.mySimpleXYPlot);

        // add a new series
        XYSeries mySeries = new SimpleXYSeries(
                Arrays.asList(10, 25, 55, 2, 80, 30, 99, 0, 44, 6),
                SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "series1");
        plot.addSeries(mySeries, new LineAndPointFormatter(
                getApplicationContext(), R.xml.f1));

        /*commented

        // reposition the domain label to look a little cleaner:
        plot.position(plot.getDomainLabelWidget(), // the widget to position
                45,                                // x position value, in this case 45 pixels
                XLayoutStyle.ABSOLUTE_FROM_LEFT,   // how the x position value is applied, in this case from the left
                0,                                 // y position value
                YLayoutStyle.ABSOLUTE_FROM_BOTTOM, // how the y position is applied, in this case from the bottom
                AnchorPosition.LEFT_BOTTOM);       // point to use as the origin of the widget being positioned

         */


        plot.centerOnRangeOrigin(60);
        plot.centerOnDomainOrigin(5);
        plot.setTitle("Test plot");

    }

    private class RELATIVE_TO_CENTER {
    }
}

Попытки: Я смог настроить внешнюю границу с помощью приведенных ниже команд, но положение легенды осталось прежним. т.е. обрезается.

plot.getGraph().setMarginRight(40);
plot.getGraph().setMarginBottom(100);

Буду очень признателен за любые предложения, например, какое свойство я хочу использовать, чтобы избежать отсечения. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...