diff --git a/src/main/java/com/xeiam/xchart/AxisTick.java b/src/main/java/com/xeiam/xchart/AxisTick.java index caae910f317ea648bd9ed4c9d894f4e9a79f8457..77e6dc397974b2527051b4c058bc5bb0d629bf89 100644 --- a/src/main/java/com/xeiam/xchart/AxisTick.java +++ b/src/main/java/com/xeiam/xchart/AxisTick.java @@ -57,12 +57,13 @@ public class AxisTick implements IChartPart, IHideable { private int workingSpace; /** the normal format for tick labels */ - private Format normalFormat; + protected Format normalFormat; /** the scientific format for tick labels */ - private Format scientificFormat; + protected Format scientificFormat; - private SimpleDateFormat simpleDateformat; + /** the format for Date tick labels */ + protected SimpleDateFormat simpleDateformat; /** the bounds */ private Rectangle bounds; @@ -81,7 +82,7 @@ public class AxisTick implements IChartPart, IHideable { axisTickLabels = new AxisTickLabels(this); axisTickMarks = new AxisTickMarks(this); - normalFormat = new DecimalFormat("#.###########"); + normalFormat = new DecimalFormat("#.###"); scientificFormat = new DecimalFormat("0.###E0"); simpleDateformat = new SimpleDateFormat("MM-dd"); @@ -243,7 +244,7 @@ public class AxisTick implements IChartPart, IHideable { private String format(BigDecimal value) { if (axis.axisType == AxisType.NUMBER) { - if (Math.abs(value.doubleValue()) < 9999 && Math.abs(value.doubleValue()) > .0001 || value.doubleValue() == 0) { + if (Math.abs(value.doubleValue()) <= 9999 && Math.abs(value.doubleValue()) > .0001 || value.doubleValue() == 0) { return normalFormat.format(value.doubleValue()); } else { return scientificFormat.format(value.doubleValue()); diff --git a/src/main/java/com/xeiam/xchart/Chart.java b/src/main/java/com/xeiam/xchart/Chart.java index 40be0131250150baed75eae868304287058352c8..096c8c8984ea5b10792d5d2e7242f39450c335ba 100644 --- a/src/main/java/com/xeiam/xchart/Chart.java +++ b/src/main/java/com/xeiam/xchart/Chart.java @@ -19,6 +19,8 @@ import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.RenderingHints; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -296,4 +298,31 @@ public class Chart { this.axisPair.xAxis.axisTick.axisTickLabels.font = font; this.axisPair.yAxis.axisTick.axisTickLabels.font = font; } + + /** + * @param pattern - the pattern describing the date and time format + */ + public void setDateFormatter(String pattern) { + + this.axisPair.xAxis.axisTick.simpleDateformat = new SimpleDateFormat(pattern); + } + + /** + * @param pattern - the pattern describing the decimal format + */ + public void setDecmialFormatter(String pattern) { + + this.axisPair.xAxis.axisTick.normalFormat = new DecimalFormat(pattern); + this.axisPair.yAxis.axisTick.normalFormat = new DecimalFormat(pattern); + } + + /** + * @param pattern - the pattern describing the scientific notation format + */ + public void setDecmialScientificFormatter(String pattern) { + + this.axisPair.xAxis.axisTick.scientificFormat = new DecimalFormat(pattern); + this.axisPair.yAxis.axisTick.scientificFormat = new DecimalFormat(pattern); + } + } diff --git a/src/test/java/com/xeiam/xchart/example/Example9.java b/src/test/java/com/xeiam/xchart/example/Example9.java index a0a2f205336abd00cc3a3137eb60b6e7482cc398..d119bf81b9e7662bcba8a87aa3ee467eee682e17 100644 --- a/src/test/java/com/xeiam/xchart/example/Example9.java +++ b/src/test/java/com/xeiam/xchart/example/Example9.java @@ -59,7 +59,6 @@ public class Example9 { chart.setChartTitle("Sample Chart with Date X-Axis"); chart.setXAxisTitle("X"); chart.setYAxisTitle("Y"); - chart.setXAxisTicksVisible(false); chart.setChartForegroundColor(ChartColor.getAWTColor(ChartColor.GREY)); chart.setChartGridLinesColor(new Color(255, 255, 255)); chart.setChartBackgroundColor(Color.WHITE); @@ -71,6 +70,8 @@ public class Example9 { chart.setAxisLabelsFont(new Font(Font.SANS_SERIF, Font.ITALIC, 18)); chart.setChartTickLabelsFont(new Font(Font.SANS_SERIF, Font.ITALIC, 18)); chart.setChartTickLabelsFont(new Font(Font.SERIF, Font.PLAIN, 11)); + chart.setDateFormatter("yyyy-MM-dd"); + chart.setDecmialFormatter("#.000"); Series series = chart.addDateSeries("Fake Data", xData, yData); series.setLineColor(SeriesColor.BLUE);