gpt4 book ai didi

java - 在 jfreechart TimeSeriesCollection 中如何显示仅具有值的日期?

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

public class Example {
public static void main(String args[]){
/*creating timeSeriesCollection*/
TimeSeriesCollection dataset = new TimeSeriesCollection();
TimeSeries timeSeries1 = new TimeSeries("Sample 1");
timeSeries1.add(new Day(8,4, 2012), 7.0);
timeSeries1.add(new Day(19,4, 2012), 5.0);
dataset.addSeries(timeSeries1);
/*Creating the chart*/
JFreeChart chart = ChartFactory.createTimeSeriesChart("Population","Date","Population",dataset,true,true,false);
/*Altering the graph */
XYPlot plot = (XYPlot) chart.getPlot();
plot.setAxisOffset(new RectangleInsets(5.0, 10.0, 10.0, 5.0));
plot.setDomainCrosshairVisible(true);
plot.setRangeCrosshairVisible(true);
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer)plot.getRenderer();
renderer.setBaseShapesVisible(true);
renderer.setBaseShapesFilled(true);
NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();
numberAxis.setRange(new Range(0,10));
DateAxis axis = (DateAxis) plot.getDomainAxis();
axis.setDateFormatOverride(new SimpleDateFormat("dd-MM-yyyy"));
axis.setAutoTickUnitSelection(false);
axis.setVerticalTickLabels(true);
/* Displaying the chart*/
ChartFrame frame = new ChartFrame("Test", chart);
frame.pack();
frame.setVisible(true);
}
}

我已经编写了上面的代码,它工作得很好,但是在渲染图表时,它显示的日期没有值。它在 y 轴上显示 9/4/1210/4/201218/4/2012 等日期,但没有一个值。如何删除没有值(value)的日期。为什么它会这样?

谁能帮帮我吗?

最佳答案

试试这个:

  public class Example1 {
public static void main(String args[]){

DefaultKeyedValues data = new DefaultKeyedValues();
data.addValue("8/4/2012" ,7.0);
data.addValue("19/04/2012",5.0);

CategoryDataset dataset = DatasetUtilities.createCategoryDataset("Population", data);
JFreeChart chart = ChartFactory.createBarChart("Population","Date","Population",dataset,PlotOrientation.VERTICAL,true,true,false);
ChartFrame frame = new ChartFrame("Test", chart);

//Switch from a Bar Rendered to a LineAndShapeRenderer so the chart looks like an XYChart
LineAndShapeRenderer renderer = new LineAndShapeRenderer();
renderer.setBaseLinesVisible(false); //TUrn of the lines
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setRenderer(0, renderer);

NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();
numberAxis.setRange(new Range(0,10));

frame.pack();
frame.setVisible(true);
}
}

enter image description here

不要使用 TimeSeriesChart,而是使用 @Dirk 建议的 CategoryDataSet,然后切换到 LineAndShapeRenderer

关于java - 在 jfreechart TimeSeriesCollection 中如何显示仅具有值的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12297851/

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