jfreechart CategoryAxis TickMarks 刻度显示问题 domainAxis.setTickMarksVisible(true);这不是就是要显示刻度吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你好!你看一下下面的代码,可以运行的:(我已经这样设置了,就是不显示,在用CategoryAxis的时候,其他的坐标轴没事)package util.src.impl;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import org.jfree.chart.ChartFactory;import org.jfree.chart.JFreeChart;import org.jfree.chart.annotations.CategoryTextAnnotation;import org.jfree.chart.axis.Axis;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.CategoryLabelPositions;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.axis.NumberTickUnit;import org.jfree.chart.plot.CategoryMarker;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.Plot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.renderer.AbstractRenderer;import org.jfree.chart.renderer.category.LineAndShapeRenderer;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.data.general.AbstractDataset;import util.src.IPictureUtil;/** * 绘制人民币汇率中间价走势图 * * @author Kong JianLuo * @create 2008-6-17 */public class PictureUtil_02 implements IPictureUtil { private int size;// 数据的个数 private Double[] value;// 数据值 private String start;// 开始日期 // yyyy-MM-dd HH:mm:ss private SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");// 时期格式 private String title = "Centrol Parity(USD)";// 标题 private Font titleFont = new Font("宋体", Font.BOLD, 18);// 标题字体 private Color titleColor = Color.blue;// 标题颜色 private Color pictureBackgroudColor = Color.white;// 图片背景色 private Color plotBackgroudColor = Color.white;// 图表背景色 private Color rangeGridlineColor = Color.black;// 网格线横向颜色 private BasicStroke rangeGridlineStroke = new BasicStroke(0.5f);// 网格线横向线条 private Color tickLabelColor = Color.black;// 坐标轴X标尺值颜色 private Color axisLineColor = Color.gray;// 坐标轴X线条颜色 private CategoryLabelPositions categoryLabelPositions = CategoryLabelPositions.DOWN_90;// //坐标轴X坐标值显示方向 private Font tickLabelFont = new Font("宋体", Font.PLAIN, 12);// 坐标轴X坐标值字体 /** * 装载数据 */ public AbstractDataset createDataSet(Double[] value, String start, String end) { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); size = value.length; this.value = value; this.start = start; Date temp = new Date(); try { temp = sdf.parse(start); } catch (ParseException e) { e.printStackTrace(); } for (int i = 0; i < size; i++) { dataset.addValue(this.value[i], "", sdf.format(temp)); temp.setTime(temp.getTime() + 24 * 60 * 60 * 1000); } return dataset; } /** * set plot */ public void setPlot(Plot p) { CategoryPlot plot = (CategoryPlot) p; plot.setBackgroundPaint(this.plotBackgroudColor); plot.setRangeGridlinePaint(this.rangeGridlineColor); // 网格线横向颜色 plot.setRangeGridlineStroke(this.rangeGridlineStroke); plot.setRangeGridlinesVisible(true); plot.setDomainGridlinesVisible(true); plot.setOutlineVisible(false); // 在图表上显示标题 Date temp = new Date(); try { temp = sdf.parse(this.start); } catch (ParseException e) { e.printStackTrace(); } temp.setTime(temp.getTime() + 24 * 60 * 60 * 1000 * ((size + 1) / 2)); CategoryTextAnnotation cta = new CategoryTextAnnotation(this.title, sdf .format(temp), this.findMaxData(value)); cta.setPaint(this.titleColor); cta.setFont(this.titleFont); plot.addAnnotation(cta);// CategoryMarker cm=new CategoryMarker("2006.06.01");// cm.setPaint(Color.black);// plot.addDomainMarker(cm); } /** * set y 坐标轴 */ public void setValueAxis(Axis axis) { NumberAxis valueAxis = (NumberAxis) axis; valueAxis.setTickLabelsVisible(true); valueAxis.setAutoTickUnitSelection(true); valueAxis.setVisible(true); valueAxis.setTickUnit(new NumberTickUnit(0.02d)); valueAxis.setTickMarksVisible(false); valueAxis.setAutoRangeIncludesZero(false); valueAxis.setNumberFormatOverride(new java.text.DecimalFormat("0.00")); } /** * set x 坐标轴 */ public void setDomainAxis(Axis axis) { CategoryAxis domainAxis = (CategoryAxis) axis; domainAxis.setTickLabelPaint(this.tickLabelColor);// 坐标轴标尺值颜色 domainAxis.setAxisLinePaint(this.axisLineColor);// 坐标轴线条颜色 System.out.println(domainAxis.getUpperMargin()); System.out.println(domainAxis.getTickMarkInsideLength()); System.out.println(domainAxis.getTickMarkOutsideLength()); System.out.println(domainAxis.getTickMarkPaint()); System.out.println(domainAxis.getTickMarkStroke()); System.out.println(domainAxis.getCategoryLabelPositionOffset()); domainAxis.setTickMarksVisible(true); domainAxis.setTickMarkOutsideLength(10f); domainAxis.setTickMarkInsideLength(10f); domainAxis.setTickMarkStroke(this.rangeGridlineStroke); domainAxis.setTickMarkPaint(Color.red); domainAxis.setLowerMargin(0.05); domainAxis.setUpperMargin(0.05); domainAxis.setTickMarksVisible(true); domainAxis.setCategoryLabelPositionOffset(20); /* domainAxis.setCategoryLabelPositions(CategoryLabelPositions .createUpRotationLabelPositions(4.725));*/ domainAxis.setCategoryLabelPositions(this.categoryLabelPositions);// 坐标轴坐标值显示方向 domainAxis.setTickLabelFont(this.tickLabelFont);// 坐标轴坐标值字体 } /** * customise the renderer... */ public void setLineAndShapeRenderer(AbstractRenderer r) { LineAndShapeRenderer renderer = (LineAndShapeRenderer) r; renderer.setPaint(Color.red); renderer.setStroke(new BasicStroke(4)); renderer.setShapesVisible(true); renderer.setDrawOutlines(true); renderer.setUseFillPaint(true); renderer.setFillPaint(Color.white); } /** * 绘制折线图 */ public JFreeChart createPicture(Double[] value, String start, String end) { // create chart JFreeChart chart = ChartFactory.createLineChart(null, // chart title null, // domain axis label null, // range axis label (CategoryDataset) createDataSet(value, start, end), // data PlotOrientation.VERTICAL, // orientation false, // include legend true, // tooltips false // urls ); chart.setBackgroundPaint(this.pictureBackgroudColor); // set plot CategoryPlot plot = (CategoryPlot) chart.getPlot(); setPlot(plot); // set y 轴 setValueAxis(plot.getRangeAxis()); // set x 轴 setDomainAxis(plot.getDomainAxis()); // customise the renderer... setLineAndShapeRenderer((AbstractRenderer) plot.getRenderer()); return chart; } /** * 找出最大值 */ private Double findMaxData(Double[] value) { double temp = value[0]; for (int i = 0; i < value.length; i++) { if (temp < value[i]) { temp = value[i]; } } return temp; }} domainAxis.setLowerMargin(0.05);domainAxis.setUpperMargin(0.05);最大最小都相等了怎么显示? 批量执行sql语句 中序,后序遍历的意义 怎样把一个字符串转化为IP,我想了两天了 找个ssh框架整合老师 sqlserver2000更新数据库速度特别慢 请问 关于Hibernate多张表查询的问题~ 刚开始学习servlet和struts应该看什么书比较好呢,进来有分 请教应用程序部署的问题 关于j2ee中事务处理的问题,请各位大哥指教! 在线考试系统的实现,如何实现office、windows操作题的阅卷? 使用JSP标签输出后的xml文件内容为乱码。怎么解决?
package util.src.impl;import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.annotations.CategoryTextAnnotation;
import org.jfree.chart.axis.Axis;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.plot.CategoryMarker;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.AbstractRenderer;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.AbstractDataset;import util.src.IPictureUtil;/**
* 绘制人民币汇率中间价走势图
*
* @author Kong JianLuo
* @create 2008-6-17
*/
public class PictureUtil_02 implements IPictureUtil {
private int size;// 数据的个数 private Double[] value;// 数据值 private String start;// 开始日期 // yyyy-MM-dd HH:mm:ss
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");// 时期格式 private String title = "Centrol Parity(USD)";// 标题 private Font titleFont = new Font("宋体", Font.BOLD, 18);// 标题字体 private Color titleColor = Color.blue;// 标题颜色 private Color pictureBackgroudColor = Color.white;// 图片背景色 private Color plotBackgroudColor = Color.white;// 图表背景色 private Color rangeGridlineColor = Color.black;// 网格线横向颜色 private BasicStroke rangeGridlineStroke = new BasicStroke(0.5f);// 网格线横向线条 private Color tickLabelColor = Color.black;// 坐标轴X标尺值颜色 private Color axisLineColor = Color.gray;// 坐标轴X线条颜色 private CategoryLabelPositions categoryLabelPositions = CategoryLabelPositions.DOWN_90;// //坐标轴X坐标值显示方向 private Font tickLabelFont = new Font("宋体", Font.PLAIN, 12);// 坐标轴X坐标值字体 /**
* 装载数据
*/
public AbstractDataset createDataSet(Double[] value, String start,
String end) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
size = value.length;
this.value = value;
this.start = start;
Date temp = new Date();
try {
temp = sdf.parse(start);
} catch (ParseException e) {
e.printStackTrace();
} for (int i = 0; i < size; i++) {
dataset.addValue(this.value[i], "", sdf.format(temp));
temp.setTime(temp.getTime() + 24 * 60 * 60 * 1000);
}
return dataset;
} /**
* set plot
*/
public void setPlot(Plot p) {
CategoryPlot plot = (CategoryPlot) p;
plot.setBackgroundPaint(this.plotBackgroudColor);
plot.setRangeGridlinePaint(this.rangeGridlineColor); // 网格线横向颜色
plot.setRangeGridlineStroke(this.rangeGridlineStroke);
plot.setRangeGridlinesVisible(true);
plot.setDomainGridlinesVisible(true);
plot.setOutlineVisible(false); // 在图表上显示标题
Date temp = new Date();
try {
temp = sdf.parse(this.start);
} catch (ParseException e) {
e.printStackTrace();
}
temp.setTime(temp.getTime() + 24 * 60 * 60 * 1000 * ((size + 1) / 2));
CategoryTextAnnotation cta = new CategoryTextAnnotation(this.title, sdf
.format(temp), this.findMaxData(value));
cta.setPaint(this.titleColor);
cta.setFont(this.titleFont);
plot.addAnnotation(cta);
// CategoryMarker cm=new CategoryMarker("2006.06.01");
// cm.setPaint(Color.black);
// plot.addDomainMarker(cm);
} /**
* set y 坐标轴
*/ public void setValueAxis(Axis axis) {
NumberAxis valueAxis = (NumberAxis) axis;
valueAxis.setTickLabelsVisible(true);
valueAxis.setAutoTickUnitSelection(true);
valueAxis.setVisible(true);
valueAxis.setTickUnit(new NumberTickUnit(0.02d));
valueAxis.setTickMarksVisible(false); valueAxis.setAutoRangeIncludesZero(false);
valueAxis.setNumberFormatOverride(new java.text.DecimalFormat("0.00"));
} /**
* set x 坐标轴
*/
public void setDomainAxis(Axis axis) {
CategoryAxis domainAxis = (CategoryAxis) axis; domainAxis.setTickLabelPaint(this.tickLabelColor);// 坐标轴标尺值颜色
domainAxis.setAxisLinePaint(this.axisLineColor);// 坐标轴线条颜色
System.out.println(domainAxis.getUpperMargin());
System.out.println(domainAxis.getTickMarkInsideLength());
System.out.println(domainAxis.getTickMarkOutsideLength());
System.out.println(domainAxis.getTickMarkPaint());
System.out.println(domainAxis.getTickMarkStroke());
System.out.println(domainAxis.getCategoryLabelPositionOffset());
domainAxis.setTickMarksVisible(true);
domainAxis.setTickMarkOutsideLength(10f);
domainAxis.setTickMarkInsideLength(10f);
domainAxis.setTickMarkStroke(this.rangeGridlineStroke);
domainAxis.setTickMarkPaint(Color.red);
domainAxis.setLowerMargin(0.05);
domainAxis.setUpperMargin(0.05);
domainAxis.setTickMarksVisible(true);
domainAxis.setCategoryLabelPositionOffset(20);
/* domainAxis.setCategoryLabelPositions(CategoryLabelPositions
.createUpRotationLabelPositions(4.725));*/
domainAxis.setCategoryLabelPositions(this.categoryLabelPositions);// 坐标轴坐标值显示方向
domainAxis.setTickLabelFont(this.tickLabelFont);// 坐标轴坐标值字体
} /**
* customise the renderer...
*/
public void setLineAndShapeRenderer(AbstractRenderer r) {
LineAndShapeRenderer renderer = (LineAndShapeRenderer) r;
renderer.setPaint(Color.red);
renderer.setStroke(new BasicStroke(4));
renderer.setShapesVisible(true);
renderer.setDrawOutlines(true);
renderer.setUseFillPaint(true);
renderer.setFillPaint(Color.white);
} /**
* 绘制折线图
*/
public JFreeChart createPicture(Double[] value, String start, String end) {
// create chart
JFreeChart chart = ChartFactory.createLineChart(null, // chart title
null, // domain axis label
null, // range axis label
(CategoryDataset) createDataSet(value, start, end), // data
PlotOrientation.VERTICAL, // orientation
false, // include legend
true, // tooltips
false // urls
);
chart.setBackgroundPaint(this.pictureBackgroudColor); // set plot
CategoryPlot plot = (CategoryPlot) chart.getPlot();
setPlot(plot); // set y 轴
setValueAxis(plot.getRangeAxis()); // set x 轴
setDomainAxis(plot.getDomainAxis()); // customise the renderer...
setLineAndShapeRenderer((AbstractRenderer) plot.getRenderer()); return chart;
} /**
* 找出最大值
*/
private Double findMaxData(Double[] value) {
double temp = value[0];
for (int i = 0; i < value.length; i++) {
if (temp < value[i]) {
temp = value[i];
}
}
return temp;
}
}
domainAxis.setUpperMargin(0.05);
最大最小都相等了怎么显示?