jfreechart 折线图里面曲线的排列是按照X轴的大小排列的,什么法子能让它们用Y轴的值顺序进行排列.

10:48 提问
java jfreechart折线图的X轴怎么设置显示间隔
如图所示,我想让下面X轴的日期 不要每个都显示怎么弄,想隔6个月显示一次。
// 初始化数据
ArrayList&BankTurnoverInfo& dataList = new ArrayList&BankTurnoverInfo&();
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年1月", 1));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年2月", 3));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年3月", 7));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年4月", 2));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年5月", 10));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年6月", 5));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年7月", 1));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年8月", 3));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年9月", 7));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年10月", 2));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年11月", 10));
dataList.add(new BankTurnoverInfo("中国工商银行", "2014年12月", 5));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年1月", 1));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年2月", 3));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年3月", 7));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年4月", 2));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年5月", 10));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年6月", 5));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年7月", 1));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年8月", 3));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年9月", 7));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年10月", 2));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年11月", 10));
dataList.add(new BankTurnoverInfo("中国工商银行", "2015年12月", 5));
dataList.add(new BankTurnoverInfo("中国银行", "2014年1月", 1));
dataList.add(new BankTurnoverInfo("中国银行", "2014年2月", 3));
dataList.add(new BankTurnoverInfo("中国银行", "2014年3月", 7));
dataList.add(new BankTurnoverInfo("中国银行", "2014年4月", 2));
dataList.add(new BankTurnoverInfo("中国银行", "2014年5月", 10));
dataList.add(new BankTurnoverInfo("中国银行", "2014年6月", 5));
dataList.add(new BankTurnoverInfo("中国银行", "2014年7月", 1));
dataList.add(new BankTurnoverInfo("中国银行", "2014年8月", 3));
dataList.add(new BankTurnoverInfo("中国银行", "2014年9月", 7));
dataList.add(new BankTurnoverInfo("中国银行", "2014年10月", 2));
dataList.add(new BankTurnoverInfo("中国银行", "2014年11月", 10));
dataList.add(new BankTurnoverInfo("中国银行", "2014年12月", 5));
dataList.add(new BankTurnoverInfo("中国银行", "2015年1月", 1));
dataList.add(new BankTurnoverInfo("中国银行", "2015年2月", 3));
dataList.add(new BankTurnoverInfo("中国银行", "2015年3月", 7));
dataList.add(new BankTurnoverInfo("中国银行", "2015年4月", 2));
dataList.add(new BankTurnoverInfo("中国银行", "2015年5月", 10));
dataList.add(new BankTurnoverInfo("中国银行", "2015年6月", 5));
dataList.add(new BankTurnoverInfo("中国银行", "2015年7月", 1));
dataList.add(new BankTurnoverInfo("中国银行", "2015年8月", 3));
dataList.add(new BankTurnoverInfo("中国银行", "2015年9月", 7));
dataList.add(new BankTurnoverInfo("中国银行", "2015年10月", 2));
dataList.add(new BankTurnoverInfo("中国银行", "2015年11月", 10));
dataList.add(new BankTurnoverInfo("中国银行", "2015年12月", 5));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年1月", 1));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年2月", 3));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年3月", 7));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年4月", 2));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年5月", 10));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年6月", 5));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年7月", 1));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年8月", 3));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年9月", 7));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年10月", 2));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年11月", 10));
dataList.add(new BankTurnoverInfo("中国招商银行", "2014年12月", 5));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年1月", 1));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年2月", 3));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年3月", 7));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年4月", 2));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年5月", 10));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年6月", 5));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年7月", 1));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年8月", 3));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年9月", 7));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年10月", 2));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年11月", 10));
dataList.add(new BankTurnoverInfo("中国招商银行", "2015年12月", 5));
// 绘图数据集
DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
Random random = new Random(new Date().getTime());
for (BankTurnoverInfo bti : dataList) {
// 第一个参数:Y轴
// 第二个参数: 类别
// 第三个参数: X轴
dataSet.setValue(random.nextInt(70)+30, bti.getBankNm(), bti.getDate());
//如果把createLineChart改为createLineChart3D就变为了3D效果的折线图
JFreeChart
chart = ChartFactory.createLineChart("图表标题", "X轴标题", "Y轴标题", dataSet,
PlotOrientation.VERTICAL, // 绘制方向
true, // 显示图例
true, // 采用标准生成器
false // 是否生成超链接
chart.getTitle().setFont(new Font("隶书", Font.BOLD, 20)); // 设置标题字体
chart.getLegend().setItemFont(new Font("宋书", Font.PLAIN, 15));// 设置图例类别字体
chart.setBackgroundPaint(Color.white);// 设置背景色
//获取绘图区对象
CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundPaint(Color.black); // 设置绘图区背景色
plot.setRangeGridlinePaint(Color.WHITE); // 设置水平方向背景线颜色
plot.setRangeGridlinesVisible(true);// 设置是否显示水平方向背景线,默认值为true
plot.setDomainGridlinePaint(Color.WHITE); // 设置垂直方向背景线颜色
plot.setDomainGridlinesVisible(true); // 设置是否显示垂直方向背景线,默认值为false
// 设置X轴
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setLabelFont(new Font("宋书", Font.PLAIN, 15)); // 设置横轴字体
domainAxis.setTickLabelFont(new Font("宋书", Font.PLAIN, 15));// 设置坐标轴标尺值字体
domainAxis.setLowerMargin(0.01);// 左边距 边框距离
domainAxis.setUpperMargin(0.06);// 右边距 边框距离,防止最后边的一个数据靠近了坐标轴。
domainAxis.setMaximumCategoryLabelLines(10);
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);// 横轴 lable 的位置 横轴上的 Lable 45度倾斜 DOWN_45
// 设置Y轴
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setLabelFont(new Font("宋书", Font.PLAIN, 15));
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());//Y轴显示整数
rangeAxis.setAutoRangeMinimumSize(1);
//最小跨度
rangeAxis.setUpperMargin(0.18);//上边距,防止最大的一个数据靠近了坐标轴。
rangeAxis.setLowerBound(0);
//最小值显示0
rangeAxis.setAutoRange(false);
//不自动分配Y轴数据
rangeAxis.setTickMarkStroke(new BasicStroke(1.6f));
// 设置坐标标记大小
rangeAxis.setTickMarkPaint(Color.BLACK);
// 设置坐标标记颜色
rangeAxis.setTickUnit(new NumberTickUnit(10));//每10个刻度显示一个刻度值
// 获取折线对象
LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();// 设置实线
BasicStroke realLine = new BasicStroke(1.8f); // 设置实线
float dashes[] = { 5.0f };
BasicStroke brokenLine = new BasicStroke(2.2f, // 线条粗细
BasicStroke.CAP_ROUND, // 端点风格
BasicStroke.JOIN_ROUND, // 折点风格
8f, dashes, 0.6f);
for (int i = 0; i & dataSet.getRowCount(); i++) {
if (i % 2 == 0)
renderer.setSeriesStroke(i, realLine); // 利用实线绘制
renderer.setSeriesStroke(i, brokenLine); // 利用虚线绘制
plot.setNoDataMessage("无对应的数据,请重新查询。");
plot.setNoDataMessageFont(new Font("宋书", Font.PLAIN, 15));//字体的大小
plot.setNoDataMessagePaint(Color.RED);//字体颜色
ServletOutputStream out = response.getOutputStream();
ChartUtilities.writeChartAsJPEG(out, chart, );
//使用一个面向application的工具类,将chart转换成JPEG格式的图片。第3个参数是宽度,第4个参数是高度。
out.close();//关闭输出流
按赞数排序
中还有另外一个方法:
setTickUnit(DateTickUnit unit).
该方法可用于设置日期间隔,如:
dateAxis. setTickUnit(new DateTickUnit(DateTickUnitType.DAY,interval));
(DateTickUnit.Day:表示以天为单位
代表两个刻度间的间隔天数
14769关注|462收录
17153关注|1338收录
7985关注|726收录
其他相似问题10335人阅读
& & & &&介绍:
& & JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter
plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。
& & & & &获取:
& &&JFreeChart 是JFreeChart公司在开源网站SourceForge.net上的一个项目,该公司的主要产品有如下:&
& & 1.JFreeReport :报表解决工具&
& & 2.JFreeChart:Java 图形解决方案(Application/Applet/Servlet/Jsp)&
& & 3.JCommon :JFreeReport和JFreeChart的公共类库&
& & 4.JFreeDesigner :JFreeReport的报表设计工具&
& & 我们可以从jfree官方网站上获取最新版本和相关资料(但是jfree的document需要40美金才能获取),&&
& & 官方网站:
& & & & & & 功能介绍:
& &&JFreeChart 目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面:&
& & &pie charts (2D and 3D) :饼图(平面和立体)&
& & &bar charts (regular and stacked, with an optional 3D effect) :柱状图&
& & &line and area charts :曲线图&
& & &scatter plots and bubble charts&
& & &time series, high/low/open/close charts and candle stick charts :时序图&
& & &combination charts :复合图&
& & &Pareto charts :排列图
& & &Gantt charts :甘特图&
& & &wind plots, meter charts and symbol charts :符号表图
& & &wafer map charts&( 态图表,饼图(二维和三维) , 柱状图 ( 水平,垂直),线图,点图,时间变化图,甘特图, 股票行情图,混和图, 温度计图, 刻度图等常用商用图表)&
& & &JFreeChart核心类库介绍:&
& & &研究jfreechart源码发现源码的主要由两个大的包组成:org.jfree.chart,org.jfree.data。其中前者主要与图形本身有关,后者与图形显示的数据有关。具体研究如果大家有兴趣的话可以自己研究 。&
& & &核心类主要有:&
& & &org.jfree.chart.JFreeChart :图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象&
& & &org.jfree.data.category.XXXDataSet: 数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类&
& & &org.jfree.chart.plot.XXXPlot :图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持&
& & &org.jfree.chart.axis.XXXAxis :用于处理图表的两个轴:纵轴和横轴&
& & &org.jfree.chart.render.XXXRender :负责如何显示一个图表对象&
& & &org.jfree.chart.urls.XXXURLGenerator: 用于生成Web图表中每个项目的鼠标点击链接&
& & &XXXXXToolTipGenerator: 用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类&
& & &配置安装:
& & &如图所示:从官网下载下来工具包之后,解压之后的结构如图所示。
& & & lib文件夹中是所需的jar包。source文件夹中是源码,需要看的话,可以添加到eclipse中查看。
& & & 新建一个项目,将jfreechart-1.0.1.jar, jcommon-1.0.0.jar, gunjaxp.jar 这三个包添加到你的项目中就OK了。
& & &代码编写:
& & & 用JFreeChart生成的各种图表,可以直接保存成为本地的一个图片(.jpeg .png等格式),也可以直接显示到图形用户界面, 还可以显示在jsp网页上。下面我只介绍前两种方法!
& & & 大体上分为一下几个步骤:
& & & (1)建立Dataset。将你所想要显示的数据都放到这个库中。
& & & (2)建立JFreeChart对象。将你的dataset填入到这个对象中。
& & & (3)设置各种JFreeChart的属性和效果。通过它提供的各种方法和接口设置相关的属性。
& & & (4)生成图表,然后按照个人的需求进行执行。
& & & 个人感觉这几个步骤类似于C#中的数据绑定,不知网友们如何看呢?!
& & & 先以柱状图为例,下面看代码:
package chart.demo02;
import java.awt.F
import java.awt.RenderingH
import java.io.FileOutputS
import org.jfree.chart.ChartF
import org.jfree.chart.ChartF
import org.jfree.chart.ChartU
import org.jfree.chart.JFreeC
import org.jfree.chart.axis.CategoryA
import org.jfree.chart.axis.ValueA
import org.jfree.chart.plot.CategoryP
import org.jfree.chart.plot.PlotO
import org.jfree.chart.title.TextT
import org.jfree.data.category.CategoryD
import org.jfree.data.category.DefaultCategoryD
public class BarChartDemo {
public static void main(String[] args) {
// 1. 得到数据
CategoryDataset dataset = getDataSet();
// 2. 构造chart
JFreeChart chart = ChartFactory.createBarChart3D(
&水果产量图&, // 图表标题
&水果&, // 目录轴的显示标签--横轴
&产量&, // 数值轴的显示标签--纵轴
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、
true, // 是否显示图例(对于简单的柱状图必须
false, // 是否生成工具
false // 是否生成URL链接
// 3. 处理chart中文显示问题
processChart(chart);
// 4. chart输出图片
writeChartAsImage(chart);
// 5. chart 以swing形式输出
ChartFrame pieFrame = new ChartFrame(&XXX&, chart);
pieFrame.pack();
pieFrame.setVisible(true);
* 获取一个演示用的组合数据集对象
private static CategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, &北京&, &苹果&);
dataset.addValue(120, &上海&, &苹果&);
dataset.addValue(160, &广州&, &苹果&);
dataset.addValue(210, &北京&, &梨子&);
dataset.addValue(220, &上海&, &梨子&);
dataset.addValue(230, &广州&, &梨子&);
dataset.addValue(330, &北京&, &葡萄&);
dataset.addValue(340, &上海&, &葡萄&);
dataset.addValue(340, &广州&, &葡萄&);
dataset.addValue(420, &北京&, &香蕉&);
dataset.addValue(430, &上海&, &香蕉&);
dataset.addValue(400, &广州&, &香蕉&);
dataset.addValue(510, &北京&, &荔枝&);
dataset.addValue(530, &上海&, &荔枝&);
dataset.addValue(510, &广州&, &荔枝&);
* 解决图表汉字显示问题
* @param chart
private static void processChart(JFreeChart chart) {
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis = plot.getDomainAxis();
ValueAxis rAxis = plot.getRangeAxis();
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font(&宋体&, Font.PLAIN, 20));
domainAxis.setTickLabelFont(new Font(&sans-serif&, Font.PLAIN, 11));
domainAxis.setLabelFont(new Font(&宋体&, Font.PLAIN, 12));
rAxis.setTickLabelFont(new Font(&sans-serif&, Font.PLAIN, 12));
rAxis.setLabelFont(new Font(&宋体&, Font.PLAIN, 12));
chart.getLegend().setItemFont(new Font(&宋体&, Font.PLAIN, 12));
// renderer.setItemLabelGenerator(new LabelGenerator(0.0));
// renderer.setItemLabelFont(new Font(&宋体&, Font.PLAIN, 12));
// renderer.setItemLabelsVisible(true);
* 输出图片
* @param chart
private static void writeChartAsImage(JFreeChart chart) {
FileOutputStream fos_jpg =
fos_jpg = new FileOutputStream(&D:\\test\\fruit.jpg&);
ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300, null);
} catch (Exception e) {
e.printStackTrace();
} finally {
fos_jpg.close();
} catch (Exception e) {
效果图如下:
接下来看其他的图表的生成:
public void createPieChart() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue(&苹果&, 250);
dataset.setValue(&桔子&, 350);
dataset.setValue(&梨子&, 200);
dataset.setValue(&香蕉&, 50);
dataset.setValue(&荔枝&, 150);
JFreeChart chart = ChartFactory.createPieChart(&水果产量比率图&, dataset,
true, true, true);
Plot cp = chart.getPlot();
cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置
// ChartFrame frame = new ChartFrame(&水果产量比率图 &, chart, true);
// frame.pack();
// frame.setVisible(true);
ChartUtilities.saveChartAsPNG(new File(&D:\\test\\PieChart.png&),
chart, 800, 500);
} catch (IOException e) {
e.printStackTrace();
3D饼状图:
public void createPieChart3D() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue(&苹果&, 250);
dataset.setValue(&桔子&, 350);
dataset.setValue(&梨子&, 200);
dataset.setValue(&香蕉&, 50);
dataset.setValue(&荔枝&, 150);
JFreeChart chart = ChartFactory.createPieChart3D(&水果产量比率图&, dataset,
true, true, true);
PiePlot3D plot = (PiePlot3D) chart.getPlot();
// 设置开始角度
plot.setStartAngle(150D);
// 设置方向为&顺时针方向&
plot.setDirection(Rotation.CLOCKWISE);
// 设置透明度,0.5F为半透明,1为不透明,0为全透明
plot.setForegroundAlpha(1F);
// 没有数据的时候显示的内容
plot.setNoDataMessage(&无数据显示&);
// 背景色设置
plot.setBackgroundPaint(ChartColor.WHITE);
// ChartFrame frame = new ChartFrame(&水果产量比率图 &, chart, true);
// frame.pack();
// frame.setVisible(true);
ChartUtilities.saveChartAsPNG(new File(&D:\\test\\PieChart3D.png&),
chart, 800, 500);
} catch (IOException e) {
e.printStackTrace();
public void createColumnChart() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, &北京&, &苹果&);
dataset.addValue(100, &上海&, &苹果&);
dataset.addValue(100, &广州&, &苹果&);
dataset.addValue(200, &北京&, &梨子&);
dataset.addValue(200, &上海&, &梨子&);
dataset.addValue(200, &广州&, &梨子&);
dataset.addValue(300, &北京&, &葡萄&);
dataset.addValue(300, &上海&, &葡萄&);
dataset.addValue(300, &广州&, &葡萄&);
dataset.addValue(400, &北京&, &香蕉&);
dataset.addValue(400, &上海&, &香蕉&);
dataset.addValue(400, &广州&, &香蕉&);
dataset.addValue(500, &北京&, &荔枝&);
dataset.addValue(500, &上海&, &荔枝&);
dataset.addValue(500, &广州&, &荔枝&);
JFreeChart chart = ChartFactory.createBarChart(&水果产量图&, &水量&, &产量&,
dataset, PlotOrientation.VERTICAL, true, true, true);
CategoryPlot cp = chart.getCategoryPlot();
cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置
cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置
// ChartFrame frame=new ChartFrame (&水果产量图 &,chart,true);
// frame.pack();
// frame.setVisible(true);
ChartUtilities.saveChartAsPNG(new File(&D:\\test\\ColumnChart.png&),
chart, 800, 500);
} catch (IOException e) {
e.printStackTrace();
public void createLineChart() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, &北京&, &苹果&);
dataset.addValue(200, &上海&, &苹果&);
dataset.addValue(300, &广州&, &苹果&);
dataset.addValue(400, &北京&, &梨子&);
dataset.addValue(500, &上海&, &梨子&);
dataset.addValue(600, &广州&, &梨子&);
dataset.addValue(700, &北京&, &葡萄&);
dataset.addValue(800, &上海&, &葡萄&);
dataset.addValue(900, &广州&, &葡萄&);
dataset.addValue(800, &北京&, &香蕉&);
dataset.addValue(700, &上海&, &香蕉&);
dataset.addValue(600, &广州&, &香蕉&);
dataset.addValue(500, &北京&, &荔枝&);
dataset.addValue(400, &上海&, &荔枝&);
dataset.addValue(300, &广州&, &荔枝&);
JFreeChart chart = ChartFactory.createLineChart(&水果产量图 &, &水果&, &产量&,
dataset, PlotOrientation.VERTICAL, true, true, true);
CategoryPlot cp = chart.getCategoryPlot();
cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置
cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置
// ChartFrame frame=new ChartFrame (&水果产量图 &,chart,true);
// frame.pack();
// frame.setVisible(true);
ChartUtilities.saveChartAsPNG(new File(&D:\\test\\LineChart.png&),
chart, 800, 500);
} catch (IOException e) {
e.printStackTrace();
3D折线图:
public void createLineChart3D() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(300, &北京&, &苹果&);
dataset.addValue(100, &上海&, &苹果&);
dataset.addValue(900, &广州&, &苹果&);
dataset.addValue(200, &北京&, &梨子&);
dataset.addValue(200, &上海&, &梨子&);
dataset.addValue(700, &广州&, &梨子&);
dataset.addValue(300, &北京&, &葡萄&);
dataset.addValue(300, &上海&, &葡萄&);
dataset.addValue(300, &广州&, &葡萄&);
dataset.addValue(400, &北京&, &香蕉&);
dataset.addValue(800, &上海&, &香蕉&);
dataset.addValue(400, &广州&, &香蕉&);
dataset.addValue(100, &北京&, &荔枝&);
dataset.addValue(500, &上海&, &荔枝&);
dataset.addValue(500, &广州&, &荔枝&);
JFreeChart chart = ChartFactory.createLineChart3D(&水果产量图 &, &水果&, &产量&,
dataset, PlotOrientation.VERTICAL, true, true, true);
CategoryPlot cp = chart.getCategoryPlot();
cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置
cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置
// ChartFrame frame=new ChartFrame (&水果产量图 &,chart,true);
// frame.pack();
// frame.setVisible(true);
ChartUtilities.saveChartAsPNG(new File(&D:\\test\\LineChart3D.png&),
chart, 800, 500);
} catch (IOException e) {
e.printStackTrace();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:692401次
积分:5992
积分:5992
排名:第3011名
原创:107篇
评论:581条
新浪微博:
微信订阅号:
文章:20篇
阅读:69783
阅读:24533
阅读:217580
文章:24篇
阅读:442532
(2)(3)(2)(17)(1)(2)(3)(1)(1)(1)(2)(2)(2)(3)(6)(2)(1)(3)(1)(7)(7)(5)(9)(10)(9)(3)(2)(11)

我要回帖

更多关于 jfreechart 折线图 的文章

 

随机推荐