データ視覚化のためにJavaで座標平面を回転させるにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-05 20:40:02
オリジナル
960 人が閲覧しました

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

Java でのデータとテキストの座標平面の回転

Java でデータとテキストを操作する場合、座標平面を回転する必要がある場合があります。望ましい視点を得るために。これには、指定した位置から X 値が右方向に、Y 値が上方向に進むように原点を移動し、平面を回転することが含まれます。さらに、Y 軸上の目盛の回転ラベルをプロットする必要がある場合があります。

原点の移動と座標面の回転

原点を移動し、座標平面を回転するには、次の手順を検討してください:

  1. 原点を移動します:

    • Graphics2D からの translation() メソッドを使用して、原点を希望の位置に移動します。新しい原点の x 座標と y 座標を指定します。
    • たとえば、原点をプロット領域の左下隅に移動するには:

      <code class="java">g2d.translate(leftStartPlotWindow, blueTop);</code>
      ログイン後にコピー
  2. Y 軸を反転します:

    • Y スケール係数 -1 を指定してscale() メソッドを使用して、Y 軸を反転します。 。これにより、y 値の方向が反転し、点が下から上にプロットされます。
    • 例:

      <code class="java">g2d.scale(1, -1);</code>
      ログイン後にコピー

Y 軸の目盛りの回転したラベルのプロット

Y 軸の目盛りの回転したラベルをプロットするには、次の手順に従います。

  1. テキストの回転:

    • Graphics2D のrotate() メソッドを使用して、テキストを反時計回りに 90 度回転します。回転を実行する位置を指定します。
    • たとえば、Y 軸ラベルのテキストを回転するには:

      <code class="java">g2d.rotate(Math.toRadians(-90), 0, 0);</code>
      ログイン後にコピー
  2. ラベルを描画します:

    • テキストを回転した後、drawString() を使用して、Y 軸に沿った適切な位置に目盛ラベルを描画します。
    • 例:

      <code class="java">g.drawString(yString, -(height / 2) - (yStrWidth / 2), yStrHeight);</code>
      ログイン後にコピー

コードの実装

これは更新されたバージョンです座標平面を回転し、回転した y 軸ラベルをプロットするために必要な変更を加えた DataPanel クラス:

<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>
ログイン後にコピー

以上がデータ視覚化のためにJavaで座標平面を回転させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!