gpt4 book ai didi

java - 组合条形图和折线图 JfreeChart。尝试用折线图得出 3 点平均值。值未正确排列

转载 作者:行者123 更新时间:2023-12-01 11:29:27 26 4
gpt4 key购买 nike

我的条形图有一个数据集,可以说:{1,2,3,4,5,6,7,8,9}。然后我有我的折线图,它应该是三点平均值,它是该索引处的条形图的值,以及之前的两个值,然后除以三。

对于相应的条形图值 1 和 2,折线图应该不存在,然后从位置 3 开始。我尝试使用 try 和 catch block 以及 if 语句,以便仅在可能的情况下放入值,但是当我这样做时,它仍然在位置 1 处开始绘制折线图,​​只是将其拉伸(stretch)以适合图表。

如何才能使折线图从第 3 列开始,然后从那里继续?

这是我现在拥有的:

公共(public)类mockTest扩展了JFrame{

public mockTest()
{
//Mock data
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
int[] times = new int[]{1,2,3,4,5,6,7,8,9};

for ( int i = 0; i < times.length; i++ ){
dataset.addValue(times[i], "Time", "Hour" + String.valueOf(i+1));;
if(i>2)
{
dataset2.addValue((times[i] + times[i-1] + times[i-2])/3, "Time", "Hour" + String.valueOf(i+1));

}

}
CategoryPlot plot = new CategoryPlot();

//create the plot

//add the first dataset, and render as bar values
CategoryItemRenderer renderer = new BarRenderer();
plot.setDataset(0,dataset);
plot.setRenderer(0,renderer);

//add the second dataset, render as lines
CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
plot.setDataset(1, dataset2);

plot.setRenderer(1, renderer2);

//set axis
CategoryAxis domainAxis = new CategoryAxis("Time");
NumberAxis rangeAxis = new NumberAxis("Value");

plot.setDomainAxis(0,domainAxis);
plot.setRangeAxis(rangeAxis);
JFreeChart chart = new JFreeChart(plot);
ChartPanel chartPanel = new ChartPanel( chart );

this.setContentPane(chartPanel);
}
**弄清楚了,就在我放置 if(i<2) 语句的位置,添加 else 语句并输入 null 作为值。

最佳答案

我最终使用了 try 和 catch block ,但 if 和 else 也可以工作。如果您不需要任何值,只需将 null 作为值即可。

    for(int i=0;i<ints1.size();i++)
{
dataset.addValue(ints1.get(i), "Good Product", "Hour" + String.valueOf(i+1));
dataset.addValue(ints2.get(i), "Bad Product", "Hour" + String.valueOf(i+1));
try{
dataset2.addValue((ints1.get(i) + ints1.get(i-1) + ints1.get(i-2))/3, "Time", "Hour" + String.valueOf(i+1));
}
catch(ArrayIndexOutOfBoundsException e)
{
dataset2.addValue(null, "Time", "Hour" + String.valueOf(i+1));
}
}

关于java - 组合条形图和折线图 JfreeChart。尝试用折线图得出 3 点平均值。值未正确排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30535127/

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