很多朋友看了我以前的一篇关于jfreechart+sql实现时间曲线图后都来问我,有没有可以自定义x轴坐标刻度名字的方法,其实在我写了那篇文章之后,我发现了时间曲线图的一些问题,例如时间间隔不平均的情况下,曲线图成形难看,且x轴时间显示不够人性化,当然这也可能是我没有发现处理好这个问题的方法。。。之后我还是使用了另一个方法去完成了那个客户的时间曲线图要求,就是使用了x轴坐标自定义的方法。。
关于如何配置Jfreechart等的具体内容可以参考我以前的文章:jfreechart+sql实现时间曲线图
Demo :
<%@ page import="java.awt.*,
javax.swing.JPanel,
org.jfree.chart.*,
org.jfree.chart.axis.*,
org.jfree.chart.plot.*,
org.jfree.chart.renderer.category.LineAndShapeRenderer,
org.jfree.data.category.CategoryDataset,
org.jfree.data.category.DefaultCategoryDataset,
org.jfree.chart.renderer.xy.XYLineAndShapeRenderer,
org.jfree.chart.title.TextTitle,
org.jfree.chart.servlet.ServletUtilities"%>
<%
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
int Y=1,Y1=2;
String X="X1",X2="X2";
defaultcategorydataset.addValue(Y,"Avg",X);
defaultcategorydataset.addValue(Y1,"Avg",X1);
//Y是Y轴的数值,X是你在X轴自己定义的字符,"Avg"是两边数据对应的曲线图名,可以依靠定义不同的名字来添加多条曲线
CategoryDataset createDataset=(CategoryDataset) defaultcategorydataset;
JFreeChart jfreechart = ChartFactory.createLineChart("title", "Date", "Data", createDataset, PlotOrientation.VERTICAL, true, true,false);
TextTitle texttitle=new TextTitle(jfree1_title,new Font("黑体",Font.PLAIN,14));
jfreechart.setTitle(texttitle);
jfreechart.setBackgroundPaint(Color.white);
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
categoryplot.setBackgroundPaint(Color.white);
categoryplot.setDomainGridlinePaint(Color.gray);
categoryplot.setDomainGridlinesVisible(true);
categoryplot.setRangeGridlinePaint(Color.gray);
NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
numberaxis.setAutoRangeIncludesZero(false);//设置Y轴的数据自动范围,不从0开始
LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)categoryplot.getRenderer();
CategoryAxis categoryaxis = categoryplot.getDomainAxis();
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(1.57));//设置字体倾斜角度的
lineandshaperenderer.setSeriesShapesVisible(0,true); //设置第一根曲线图的交叉点显示
String filename = ServletUtilities.saveChartAsPNG(jfreechart, 400,200, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" border=0 usemap="#<%= filename %>">
分享到:
相关推荐
在Java编程环境中,JFreeChart库是一个非常强大的工具,用于创建各种类型的图表,如线图、柱状图、饼图等。在处理复杂的数据显示时,可能会遇到横轴标签过于密集,导致阅读困难的问题。本教程将详细介绍如何使用...
5. **创建图表**:调用`ChartFactory.createXYLineChart()`方法,传入图表标题、主要X轴标题、主Y轴标题和`XYPlot`实例。 6. **配置图表**:根据需要,你可以调整轴的标签、颜色、线条样式,甚至添加图例和背景色等...
标题提到的“JFreechart 双坐标Y轴 折点显示数据”就是一种高级图表配置,它涉及到如何在一个图表中同时呈现两个独立的Y轴,每个轴对应一个数据系列,并且能够清晰地展示数据的折点。 首先,理解双Y轴的实现原理:...
示例中可能包含了如何添加数据系列、调整柱宽、设置坐标轴标签等操作。 ### 二、饼图(Pie Chart) 饼图用于显示部分与整体的关系。在JFreeChart中,`PiePlot`类用于创建饼图。通过`PieDataset`接口,你可以添加...
2. **创建图表**: 使用ChartFactory的静态方法,传入数据集、标题、x轴标签、y轴标签等参数。 3. **定制图表**: 可以通过设置Chart的属性,如设置背景色、添加图例、调整坐标轴范围等。 4. **设置渲染器**: 对于...
开发者可以设置坐标轴的标签、刻度和范围,如`CategoryAxis.setLabel()`设置X轴标签,`ValueAxis.setRange()`设定数值轴的显示范围。 5. **定制样式**: 通过`Renderer`接口,可以定制图表的渲染方式,比如改变柱状...
"X轴标签", // X轴标签 "Y轴标签", // Y轴标签 dataset // 数据集 ); // 输出到文件或显示在GUI中 FileOutputStream out = new FileOutputStream("chart.png"); ChartUtilities.writeChartAsPNG(out, chart, 500...
创建柱状图时,你可以自定义颜色、标签、数据系列和X轴、Y轴的范围。 **2. 折线图(Line Chart)** 折线图适合展示趋势或随时间变化的数据。JFreeChart支持添加多个数据系列,每个系列都可以用不同的颜色表示,通过...
"X轴标签", // X轴标签 "Y轴标签", // Y轴标签 dataset); // 数据集 // 设置图表属性 ChartUtilities.writeChartAsPNG(new File("chart.png"), chart, 500, 300); ``` 以上代码演示了如何使用JFreeChart创建一...
- **网格线条颜色和样式**:例如`setRangeGridlinePaint(Color.orange)`设置X轴网格线颜色为橙色;`setDomainGridlineStroke(new BasicStroke(0.1f))`设置Y轴网格线条笔触。 - **坐标轴字体和可见性**:通过`...
5. **轴(Axis)**:X轴、Y轴或Z轴,用于显示数据的坐标值。 6. **图例(Legend)**:显示图表中各个数据系列的信息。 7. **提示信息( tooltips)**和**URL标签(URL labels)**:为图表元素提供额外信息,增强用户...
JFreeChart 提供了丰富的 API 用于自定义图表的各个方面,例如改变字体、颜色、边框样式,添加图例项,调整坐标轴范围等。 5. **绘图面板与组件**: 通常,你会将图表绘制到 `JPanel` 上,通过 `ChartPanel` 类...
- `XYPlotDemo1` 展示了如何自定义线图的 X 轴和 Y 轴。 - `ThemedChartDemo1` 介绍了如何应用主题,改变图表的整体风格。 6. **实际项目应用** 在实际项目中,JFreeChart 可用于报表系统、数据分析工具、监控...
2. **创建图表**:使用`JFreeChart`类的`createLineChart()`方法,传入图表的标题、X轴标签、Y轴标签和数据集。 3. **配置图表**:通过`ChartFactory`或直接操作`JFreeChart`对象,可以定制图表的外观,比如设置...
这些方法接受图表的标题、数据源、x轴标签和y轴标签作为参数。 **四、数据源与图表组件** JFreeChart 使用 `CategoryDataset` 和 `XYDataset` 接口表示分类数据和XY坐标数据。开发者可以实现这些接口或者使用提供...
"月份", // x轴标签 "销售额", // y轴标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 布局方向 true, // 显示图例 true, // 显示工具提示 false // 显示URL ); ``` 最后,我们需要将图表显示在组件...
- **Axis**:X轴和Y轴,控制数据的显示范围和刻度。 - **Plot**:承载图表的主要部分,包含坐标轴和渲染器。 3. **自定义图表** - **颜色和样式**:可以自定义每个数据系列的颜色、线条样式、填充色等。 - **...
Plot 对象通常包含 Dataset(数据源)、DomainAxis(X轴)、RangeAxis(Y轴)和 Renderer(绘制单元)。Dataset 存储图表所需的数据,Renderer 负责将这些数据转化为可视化的元素。 Renderer 对象是图形绘制的核心...
5. **多轴图表**:支持在一个图表中展示多个Y轴或X轴,便于比较不同类型的数据。 6. **图表组合与叠加**:可以将多个图表组合或叠加显示,创建复杂的数据展示效果。 7. **未来发展规划**:JFreeChart不断更新...