Rumah > Java > javaTutorial > Bagaimana untuk Menskala Semula Domain Axis secara Dinamik dalam CombinedDomainXYPlot JFreeChart?

Bagaimana untuk Menskala Semula Domain Axis secara Dinamik dalam CombinedDomainXYPlot JFreeChart?

Linda Hamilton
Lepaskan: 2024-12-01 12:55:12
asal
466 orang telah melayarinya

How to Dynamically Rescale the Domain Axis in JFreeChart's CombinedDomainXYPlot?

Penskalaan Semula Paksi Domain dalam CombinedDomainXYPlot

Apabila menggunakan CombinedDomainXYPlot untuk berkongsi paksi domain antara berbilang subplot, ia diperhatikan bahawa julat kepada paksi data berubah manakala paksi domain kekal tidak berubah. Memahami dan menangani isu ini memerlukan pandangan yang lebih dekat pada mekanisme asas plot.

Julat Gabungan untuk Paksi Domain

CombinedDomainXYPlot menetapkan julat maksimum untuk paksi domain kongsi , yang membolehkan perkongsian paksi. Perubahan keterlihatan siri tidak menjejaskan paksi domain kongsi secara langsung. Walau bagaimanapun, mengubah set data mengemas kini paksi domain melalui kaedah configure(). Ini membolehkan paksi julat subplot dikemas kini secara bebas.

Paksi Domain Auto-Kemas Kini

Untuk melaraskan paksi domain kongsi secara automatik, gunakan addSeries() atau removeSeries () dan bukannya setSeriesVisible(). Kaedah ini mencetuskan konfigurasi paksi domain.

Contoh Penyesuaian

Contoh kod di bawah menunjukkan CombinedDomainXYPlot di mana paksi domain dikemas kini dengan memanggil configure() apabila subplot dikemas kini atau siri adalah tersembunyi.

mainPlot.getDomainAxis().configure();
Salin selepas log masuk

Pertimbangan

  • Pastikan urutan awal dikira dan bingkai dibungkus dengan betul.
  • Pendekatan yang dicadangkan untuk menogol setAutoRange() boleh digantikan dengan panggilan configure() tunggal, tetapi kesannya mungkin tidak ketara kerana data dan julat maksimum kekal tidak berubah.

      public static void init() {
          XYItemRenderer renderer = new StandardXYItemRenderer(SHAPES_AND_LINES);
          XYPlot plot1 = new XYPlot(
              generateData(), null, new NumberAxis("Range 1"), renderer);
          XYPlot plot2 = new XYPlot(
              generateData(), null, new NumberAxis("Range 2"), renderer);
          final CombinedDomainXYPlot plot =
              new CombinedDomainXYPlot(new NumberAxis("Domain"));
          plot.setDomainPannable(true);
          plot.setRangePannable(true);
          plot.add(plot1);
          plot.add(plot2);
          plot.setOrientation(PlotOrientation.VERTICAL);
          JFreeChart chart = new JFreeChart(
              "Combined Plots", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
          ChartPanel chartPanel = new ChartPanel(chart);
          chartPanel.setPreferredSize(new Dimension(800, 500));
    
          JPanel controlPanel = new JPanel();
          controlPanel.add(new JButton(new UpdateAction(plot, 0)));
          controlPanel.add(new JButton(new UpdateAction(plot, 1)));
          for (int i = 0; i < MAX; i++) {
              JCheckBox jcb = new JCheckBox(new VisibleAction(renderer, i));
              jcb.setSelected(true);
              renderer.setSeriesVisible(i, true);
              controlPanel.add(jcb);
          }
    
          JFrame frame = new JFrame("Combined Plot Example");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.add(chartPanel, BorderLayout.CENTER);
          frame.add(controlPanel, BorderLayout.SOUTH);
          frame.pack();
          frame.setLocationRelativeTo(null);
          frame.setVisible(true);
      }
    Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menskala Semula Domain Axis secara Dinamik dalam CombinedDomainXYPlot JFreeChart?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan