我想在同一工作 JFrame 中绘制 org.knowm.xchart.XYChart 数据,但下面的代码中没有任何反应:
final XYChart chart = new XYChartBuilder()
.height(jPanel1.getHeight())
.width(jPanel1.getWidth())
.title("test").xAxisTitle("X").yAxisTitle("Y").build();
chart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Line);
chart.getStyler().setLegendVisible(false);
for (int i = 0; i < data.length; i++) {
chart.addSeries(data[i], info, xyData[i]);
}
chart.getStyler().setMarkerSize(0);
SwingUtilities.invokeLater(() -> {
jPanel1 = new XChartPanel<>(chart);
jPanel1.invalidate();
});
jPanel1 锚定在 Jframe 的底部。 org.knowm.xchart.XYChart 的所有示例都在新窗口中显示图表。
我认为你需要将他自己的面板添加到你的面板中;
JPanel chartPanel = new XChartPanel<XYChart>(chart);
panel1.add(chartPanel);
它应该有效:)
我尝试过这个,但没有成功。有人能给我一些建议吗?谢谢。
private void DrawButtonMouseClicked(java.awt.event.MouseEvent evt) {
int length=21;
double[] xData = new double[length];
double[] yData = new double[length];
for (int i=0;i<(length);i++){
xData[i]=2*Math.PI/20*i;
yData[i]=Math.sin(xData[i]);
}
// Create Chart
XYChart chart = QuickChart.getChart("Sample Chart", "X", "Y", "y(x)", xData, yData);
// Show it
XChartPanel chartPanel = new XChartPanel<>(chart);
MyPanel.add(chartPanel);
}