gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:11:24 29 4
gpt4 key购买 nike

我有两组数据

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 绘制为散点图行。

我还需要 xy,y2 的每个散点根据 z2 的值设置不同的颜色 (1=Color.red, 2=颜色.绿色, 3=颜色.蓝色)

我该怎么做?

到目前为止我有:

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);

这将对折线图进行排序。我现在需要为 x2,y2(使用上述颜色)编写散点图,这是我卡住的地方。

最佳答案

createXYLineChart() 方法将创建一个使用 XYLineAndShapeRenderer 的图表.因此,从绘图中获取渲染器并将其转换为 XYLineAndShapeRenderer。然后你可以调用方法 setSeriesLinesVisible()setSeriesShapesVisible()为每个系列控制是否为数据项绘制形状和/或线条。这样您就可以使用单个渲染器和数据集,从而使事情变得更简单。

根据另一个数据值更改颜色的要求需要做更多的工作。您应该继承 XYLineAndShapeRenderer 类并覆盖 getItemPaint(int, int)方法。在这里您可以为数据项返回您想要的任何颜色。默认实现查看系列索引并返回系列的颜色。您还需要查看项目索引,然后在您的 z 值表中查找并决定返回什么颜色。

关于java - JFreeChart:如何在同一图表上绘制折线图和散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502401/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com