Heim > Java > javaLernprogramm > Hauptteil

Wie dreht man die Koordinatenebene in Java zur Datenvisualisierung?

Barbara Streisand
Freigeben: 2024-11-05 20:40:02
Original
960 Leute haben es durchsucht

How to Rotate the Coordinate Plane in Java for Data Visualization?

Rotierende Koordinatenebene für Daten und Text in Java

Beim Bearbeiten von Daten und Text in Java kann es erforderlich sein, die Koordinatenebene zu drehen eine gewünschte Perspektive zu gewinnen. Dies kann das Verschieben des Ursprungs und das Drehen der Ebene umfassen, sodass die X-Werte von einer bestimmten Position aus nach rechts und die Y-Werte nach oben verlaufen. Darüber hinaus kann es erforderlich sein, gedrehte Beschriftungen für Teilstriche auf der Y-Achse zu zeichnen.

Verschieben des Ursprungs und Drehen der Koordinatenebene

Zum Verschieben des Ursprungs und Drehen Sie die Koordinatenebene und beachten Sie die folgenden Schritte:

  1. Übersetzen Sie den Ursprung:

    • Verwenden Sie die Translate()-Methode von Graphics2D nach Verschieben Sie den Ursprung an die gewünschte Stelle. Geben Sie die X- und Y-Koordinaten des neuen Ursprungs an.
    • Um beispielsweise den Ursprung in die untere linke Ecke des gezeichneten Bereichs zu verschieben:

      <code class="java">g2d.translate(leftStartPlotWindow, blueTop);</code>
      Nach dem Login kopieren
  2. Y-Achse umkehren:

    • Verwenden Sie die Methode scale() mit einem y-Skalierungsfaktor von -1, um die y-Achse umzukehren . Dadurch wird die Richtung der Y-Werte umgekehrt, was dazu führt, dass Punkte von unten nach oben dargestellt werden.
    • Zum Beispiel:

      <code class="java">g2d.scale(1, -1);</code>
      Nach dem Login kopieren

Gedrehte Beschriftungen für Y-Achsen-Teilstriche zeichnen

Um gedrehte Beschriftungen für Y-Achsen-Teilstriche zu zeichnen, führen Sie die folgenden Schritte aus:

  1. Drehen Sie den Text:

    • Verwenden Sie die Methode „rotate()“ von Graphics2D, um den Text um 90 Grad gegen den Uhrzeigersinn zu drehen. Geben Sie den Ort an, an dem die Drehung durchgeführt werden soll.
    • Zum Beispiel, um den Text für die Y-Achsenbeschriftungen zu drehen:

      <code class="java">g2d.rotate(Math.toRadians(-90), 0, 0);</code>
      Nach dem Login kopieren
  2. Zeichnen Sie die Beschriftungen:

    • Nachdem Sie den Text gedreht haben, verwenden Sie drawString(), um die Teilstrichbeschriftungen an den entsprechenden Stellen entlang der y-Achse zu zeichnen.
    • Zum Beispiel:

      <code class="java">g.drawString(yString, -(height / 2) - (yStrWidth / 2), yStrHeight);</code>
      Nach dem Login kopieren

Code-Implementierung

Hier ist eine aktualisierte Version der DataPanel-Klasse mit den notwendigen Änderungen, um die Koordinatenebene zu drehen und gedrehte Y-Achsenbeschriftungen darzustellen:

<code class="java">import java.awt.*;
import java.awt.geom.AffineTransform;
import javax.swing.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.*;

class DataPanel extends JPanel {
    Insets ins; // holds the panel's insets
    ArrayList<Double> myDiffs;
    double maxDiff = Double.NEGATIVE_INFINITY;
    double minDiff = Double.POSITIVE_INFINITY;
    double maxPlot;

    DataPanel(ArrayList<Double> Diffs, int h, int w){
        setOpaque(true);// Ensure that panel is opaque.
        setPreferredSize(new Dimension(w, h));
        setMinimumSize(new Dimension(w, h));
        setMaximumSize(new Dimension(w, h));
        myDiffs = Diffs;
        repaint();
        this.setVisible(true);
    }

    protected void paintComponent(Graphics g){// Override paintComponent() method.
        super.paintComponent(g);
        //get data about plotting environment and about text
        int height = getHeight();
        int width = getWidth();
        ins = getInsets();
        Graphics2D g2d = (Graphics2D)g;
        FontMetrics fontMetrics = g2d.getFontMetrics();
        String xString = ("x-axis label");
        int xStrWidth = fontMetrics.stringWidth(xString);
        int xStrHeight = fontMetrics.getHeight();
        String yString = "y-axis label";
        int yStrWidth = fontMetrics.stringWidth(yString);
        int yStrHeight = fontMetrics.getHeight();</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie dreht man die Koordinatenebene in Java zur Datenvisualisierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!