我正在使用JFreeChart显示一个月的每一天的值。现在,我想让我的x轴显示一个月中的星期而不是天。目前,我的图表的值在y轴上是double,在x轴上是int。
Timestamp ts = a.getTimestamp(); Double val = a.getVal(); series1.add(ts.getDate(), val);
我正在 plot.getDomainAxis().setRange(0, 31); 将日期范围设置为一个月,并且 xax.setTickUnit(new NumberTickUnit(7)); 将x轴的刻度显示在正确的位置。我不想显示天(0、7、14、21、28),而是希望它们是几周(0、1、2、3、4)。
plot.getDomainAxis().setRange(0, 31);
xax.setTickUnit(new NumberTickUnit(7));
那有可能吗,我将如何做到呢?
您应该DateAxis像时间一样使用a 作为时间轴ChartFactory.createTimeSeriesChart()。然后,您可以使用setDateFormatOverride(),如它们在此处显示的那样,并使用SimpleDateFormat“每月的一周”。
DateAxis
ChartFactory.createTimeSeriesChart()
setDateFormatOverride()
SimpleDateFormat
JFreeChart chart = ChartFactory.createTimeSeriesChart(…); DateAxis axis = (DateAxis) chart.getXYPlot().getDomainAxis(); axis.setDateFormatOverride(new SimpleDateFormat("W"));