Wie legen Sie denselben Maßstab für die domain-und range-Achsen JFreeChart
Ich möchte pole/zero plot ähnlich pole/zero plot. Es ist für die Anzeige von IIR-und FIR-Filter-Eigenschaften wie Stabilität, Typ...
Meine Frage ist: Wie kann ich einstellen, gleichen Maßstab (nicht range) für beide Achsen?
Ich benutze ScatterPlot-für das Diagramm.
JFreeChart chart = ChartFactory.createScatterPlot("Pole/zero plot", //chart
//title
"real", //x axis label
"imaginary", //y axis label
result, //data
PlotOrientation.VERTICAL, true, //include legend
true, //tooltips
false //urls
);
XYPlot plot = (XYPlot) chart.getPlot();
plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.black);
plot.setDomainGridlinePaint(Color.black);
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
renderer.setBaseItemLabelsVisible(true);
renderer.setBaseItemLabelsVisible(true, true);
plot.setDomainCrosshairVisible(true);
plot.setDomainCrosshairLockedOnData(true);
plot.setRangeCrosshairVisible(true);
plot.setRangeCrosshairLockedOnData(true);
float dash1[] = { 10.0f };
XYShapeAnnotation unitCircle = new XYShapeAnnotation(
new Ellipse2D.Double(-1, -1, 2, 2), new BasicStroke(1.0f,
BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f,
dash1, 0.0f), Color.black);
plot.addAnnotation(unitCircle);
plot.setBackgroundPaint(Color.white);
chart.setAntiAlias(true);
chartPanel = new JPanel(new BorderLayout());
ChartPanel cp = new ChartPanel(chart);
cp.setMouseWheelEnabled(true);
cp.setToolTipText("test");
cp.setDisplayToolTips(true);
chartPanel.add(cp);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sans-Legende, setzen der bevorzugten Größe der
ChartPanel
funktioniert ziemlich gut:Siehe auch Sollte ich vermeiden, dass die Verwendung von
set(Preferred|Maximum|Minimum)Size()
- Methoden in Java-Swing? und diese Antwort über chart-Größe.ChartPanel
zu einem container, dessen layout stützt sich auf die bevorzugte Größe, wieFlowLayout
.