Androidplot

  • 9 Antworten
  • Letztes Antwortdatum
I

iboshido

Neues Mitglied
0
hey leute,
ich würde gerne einen einen Graphen plotten, mit hilfe von Androidplot. Jedoch krieg ich es nicht gebacken weil keines der von mir gefunden tutorials funtioniert. Ich ich weiss nicht ob es villt daran liegt dass diese tuts für Eclipe gedacht sind, ich aber android studio benutzte.

Wäre bitte jemand so nett und könnte mir eine Schritt für Schritt anweisung zur verfügung stellen?? wäre sehr hilfreich. Danke
 
Madlip schrieb:

bekomme nur errors

Aber ich finde dieses tut so oder so nicht so gut, es wird garnicht erwähnt was man mit dem gedownloadetem jar file oder was mit mit gradle machen soll, usw.
 
Zuletzt bearbeitet:
Was denn für Errors? So kann man dir nicht weiter helfen!

Du downloadest kein jar File, die trägst lediglich

Code:
compile "com.androidplot:androidplot-core:0.9.6"

das in deinen dependencies ein und kannst es verwenden.
 
kriege gleich beim ersten schritt einen Fehler -.-

 
Hi,

das ist die falsche build.gradle. Dependencies kommen nicht in die parent build.gradle, sondern in die der einzelnen Module. In deinem Fall also in app/build.gradle.
 
ok habs etz. Die Klasse LineAndPointFormatter hat einen weiteren Parameter für seinen Konstruktor erwartet....

Danke an alle die geholfen haben :thumbsup:
 
Guten Abend zusammen,

habe mich heute angemeldet, da ich mit dem AndroidPlot einfach nicht weiter komme.
Last mich kurz beschreiben:
Ich nutze Android Studio 2.2 und AndroidPlot (vor ca. 1 Monat), also eher neu.
Dazugebunden und compiled, alles roger soweit
Ich möchte die Abbremsung messen, wobei ich einen "float [] fMesswerte[500]" Array verwende,
und diesen in 10s (max. Messungsdauer) mit 50 Hz messe.
Die Messwerte vom Sensor (Y-Achse) liegen zwischen 0.00 und 9.90 m/s2. (geprüft)
Am Ende der messung möchte ich ihn anzeigen, und bekomme es nicht hin,
diesen Array z.B. als "series1" zu übernehmen.
Auch die Optik des Bargraphen ist recht bescheiden.
Der Link "Dynamically Plotting Sensor Data – Androidplot"
ist zwar gut, aber es wird nirgens ein fertiger Array aus "floats" mit min. 10 Werten
nach der Messung übernommen und dargestellt.
Immer nur Number [] Arrays mit 3 Werten direkt bei der Ausgabe erzeugt.

Ablauf:
1. messe 500 Pixel fülle den fMesswerte Array mit dem aktuellen Sensorwert
2. printe den Rahmen, mit Skalierung Plot_1_Optik()
3. will den Graph einzeichnen Plot_1_V4_anzeigen ()
Hat mir hierzu jemand ein Bsp. Wäre Klasse.

mein XML hat auch nur 300 Pixel in der Breite, aber daran sollte es nicht scheitern
Code:
<com.androidplot.xy.XYPlot
android:id="@+id/iPlot_S11_1"
android:layout_width="300dp"
android:layout_height="95dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="165dp"
android:layout_marginRight="10dp"
androidPlot.graphWidget.marginRight="10dp"
androidPlot.graphWidget.marginBottom="8dp"
androidPlot.titleWidget.labelPaint.textSize="10dp"
ap:rangeLabelTextSize="10dp"
ap:domainLabelTextSize="10dp"
ap:legendHeight="30dp"
/>
Code:
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    // wir zeigen die Grafik 1 als Rahmen an
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public static void Plot_1_Optik() {

        // X / Y 10 er Steps
        iPlot_S11_1.setDomainStep(XYStepMode.SUBDIVIDE, 10);

        // X-Achse=Domain
        iPlot_S11_1.setDomainBoundaries(0, 10, BoundaryMode.FIXED);

        // get rid of the decimal place on the display:
        iPlot_S11_1.setDomainValueFormat(new DecimalFormat("#"));


        // Y-Achse=Range
        iPlot_S11_1.setRangeBoundaries(0, 8, BoundaryMode.FIXED);
        iPlot_S11_1.setRangeStepValue(9);



        // reduce the number of range labels
        iPlot_S11_1.setTicksPerRangeLabel(3);


    }

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    // wir zeigen die Grafik 1 als Plot an
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public static void Plot_1_V4_anzeigen() {

        int i;

        //fGrafikMesswerte_BTB
        Number[] nZeit = new Number[501];
        Number[] nWert = new Number[501];

        // kreiere X-Achse = Zeit
        //         Y-Achse = Wert
        for ( i=0; i<500;i++)
        {
            // 0...500
            nZeit = i;
            nWert = fGrafikMesswerte_BTB;

        }

        // Turn the above arrays into XYSeries':
        XYSeries series1 = new SimpleXYSeries(
                Arrays.asList(nZeit),
                Arrays.asList(nWert),
                "DM");                             // Set the display title of the series

        // ok: LineAndPointFormatter series1Format = new LineAndPointFormatter(Color.RED, Color.GREEN, Color.BLUE, null);
        LineAndPointFormatter series1Format = new LineAndPointFormatter(Color.RED, Color.GREEN, Color.CYAN, null);

        // setup our line fill paint to be a slightly transparent gradient:
        Paint lineFill = new Paint();
        lineFill.setAlpha(200);
        lineFill.setShader(new LinearGradient(0, 0, 0, 250, Color.WHITE, Color.GREEN, Shader.TileMode.MIRROR));

        series1Format.setFillPaint(lineFill);

        // add a new series' to the xyplot:
        // => show it
        iPlot_S11_1.addSeries(series1, series1Format);

        // new painten
        iPlot_S11_1.redraw();
    }
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: Kiwi++Soft - Grund: Bitte Code-Tags verwenden!
Zurück
Oben Unten