Java JFreeChart:如何在同一图表上绘制线图和散点图

Java JFreeChart:如何在同一图表上绘制线图和散点图,java,jfreechart,scatter-plot,line-plot,Java,Jfreechart,Scatter Plot,Line Plot,我有两组数据 int[] x1 = {1,2,3,4,5,6,7,8,9,10}; int[] y1 = {1,2,3,5,6,8,9,10,14,11}; int[] x2 = {1,2,3,4,5,6,7,8,9,10}; int[] y2 = {0,2,3,5,0,8,9,8,14,11}; int[] z2 = {1,2,3,1,2,3,1,2,3,1}; 我想将x1,y1绘制为XYLineChart,然后将x2,y2绘制为同一个图上的散点,没有直线 我还需要根据z2的值,将xy,

我有两组数据

int[] x1 = {1,2,3,4,5,6,7,8,9,10};
int[] y1 = {1,2,3,5,6,8,9,10,14,11};

int[] x2 = {1,2,3,4,5,6,7,8,9,10};
int[] y2 = {0,2,3,5,0,8,9,8,14,11};

int[] z2 = {1,2,3,1,2,3,1,2,3,1};
我想将
x1,y1
绘制为
XYLineChart
,然后将
x2,y2
绘制为同一个图上的散点,没有直线

我还需要根据
z2
的值,将
xy,y2的每个分散点设置为不同的颜色(1=color.red,2=color.green,3=color.blue)

我该怎么做

到目前为止,我已经:

JPanel panel_1 = new JPanel();
panel_1.setLayout(new BorderLayout(0, 0));
XYSeriesCollection dataset = new XYSeriesCollection();
XYSeries series1 = new XYSeries("series1");
for(int i=0; i<x1.length; i++){
    series1.add(x1[i],y1[i]);
}
dataset.add(series1);
JFreeChart chart = ChartFactory.createXYLineChart("Title", "x", "y", dataset, PlotOrientation.VERTICAL, false, false, false);
ChartPanel cp = new ChartPanel(chart);
panel_1.add(cp, BorderLayout.CENTER);
JPanel面板_1=newjpanel();
面板_1.设置布局(新边界布局(0,0));
XYSeriesCollection数据集=新的XYSeriesCollection();
XYSeries系列1=新的XYSeries(“系列1”);
对于(int i=0;icreateXYLineChart()方法将创建一个使用的图表。因此,从绘图中获取渲染器并将其转换为XYLineAndShapeRenderer。然后,您可以调用这些方法并控制每个系列是否为数据项绘制形状和/或线条。这样,您可以使用单个渲染器和数据集,从而使事情更简单

您需要根据另一个数据值更改颜色,这需要更多的工作。您应该为XYLineAndShapeRenderer类创建子类并重写该方法。在这里,您可以为数据项返回所需的任何颜色。默认实现查看序列索引并返回序列的颜色。您需要查看在项目索引处,然后在z值表中进行查找,并确定返回的颜色。

查看此处:不完全相同,但相关。是否尝试添加第二个渲染器?有关示例代码的副本,请参阅。