ホームページ >Java >&#&チュートリアル >JFreeChart の CombinedDomainXYPlot でドメイン軸を動的に再スケールする方法は?
CombinedDomainXYPlot でのドメイン軸の再スケーリング
CombinedDomainXYPlot を利用して複数のサブプロット間でドメイン軸を共有すると、範囲軸が調整されることが観察されます。データは変更されますが、ドメイン軸は変更されません。この問題を理解して対処するには、プロットの基礎となるメカニズムを詳しく調べる必要があります。
ドメイン軸の結合範囲
CombinedDomainXYPlot は、共有ドメイン軸の最大範囲を確立します。 、これにより軸の共有が可能になります。シリーズの表示設定の変更は、共有ドメイン軸に直接影響しません。ただし、データセットを変更すると、configure() メソッドを介してドメイン軸が更新されます。これにより、サブプロットの範囲軸を個別に更新できるようになります。
ドメイン軸の自動更新
共有ドメイン軸を自動的に調整するには、addSeries() または RemoveSeries を使用します。 setSeriesVisible() ではなく () です。これらのメソッドは、ドメイン軸の構成をトリガーします。
カスタマイズ例
以下のコード例は、CombinedDomainXYPlot を示しています。CombinedDomainXYPlot では、サブプロットが更新されるか、シリーズが更新されます非表示。
mainPlot.getDomainAxis().configure();
考慮事項
setAutoRange() を切り替えるという提案されたアプローチは、単一の configure() 呼び出しで置き換えることができますが、その効果は顕著ではない可能性があります。データと最大範囲は変更されません。
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); }
以上がJFreeChart の CombinedDomainXYPlot でドメイン軸を動的に再スケールする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。