急!急!急!急!急!急!急!急! 使用 jFreeChart 生成混合图行

Ghost_520 2008-03-19 10:58:12

我想使用 jfreechart 生成一个柱状图合折线图混合使用的图形,还有一点就是柱状图和折线图的横坐标是一样的,纵坐标有两个,左右一边一个。

左边的是柱状图的纵坐标,右边的是折线图的纵坐标。

请各位大哥大姐们帮小弟解决下这个问题,如果有源码是最好的!!!

不会的兄弟也帮忙顶下,不胜感激!!!!!!!!!!!!!!!!!!!!!!
...全文
485 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
风海流Y 2010-08-26
  • 打赏
  • 举报
回复
能嵌入到JSP页面么?
xfxuelan1986 2010-01-15
  • 打赏
  • 举报
回复
很好,正好可以使用啊。
huohu_0321 2009-10-07
  • 打赏
  • 举报
回复
能不能共享下 线柱混合的 时序图。
luo419537236 2009-06-12
  • 打赏
  • 举报
回复
就是
hcjingjing 2009-03-19
  • 打赏
  • 举报
回复
楼上代码好用,谢谢,我正找这个呢
Tom_Leo 2009-01-17
  • 打赏
  • 举报
回复
//拿去试试吧
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.block.*;
import org.jfree.chart.labels.StandardCategoryToolTipGenerator;
import org.jfree.chart.plot.*;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.title.CompositeTitle;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.*;

public class DualAxisDemo extends ApplicationFrame
{

public DualAxisDemo(String s)
{
super(s);
JFreeChart jfreechart = createChart();
ChartPanel chartpanel = new ChartPanel(jfreechart);
chartpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartpanel);
}

private static CategoryDataset createDataset1()
{
String s1 = "S1";
String s2 = "S2";
String s3 = "S3";
String s4 = "S4";
String s5 = "S5";
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(150D, s1, s2);
defaultcategorydataset.addValue(200D, s1, s3);
defaultcategorydataset.addValue(80D, s1, s4);
defaultcategorydataset.addValue(220D, s1, s5);
return defaultcategorydataset;
}

private static CategoryDataset createDataset2()
{
String s1 = "S6";
String s2 = "S2";
String s3 = "S3";
String s4 = "S4";
String s5 = "S5";
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(20D, s1, s2);
defaultcategorydataset.addValue(27D, s1, s3);
defaultcategorydataset.addValue(10D, s1, s4);
defaultcategorydataset.addValue(30D, s1, s5);
return defaultcategorydataset;
}

private static JFreeChart createChart()
{
JFreeChart jfreechart = ChartFactory.createBarChart("DualAxisChart", "Category", "Value", createDataset1(), PlotOrientation.VERTICAL, false, true, false);
jfreechart.setBackgroundPaint(Color.white);
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
categoryplot.setBackgroundPaint(new Color(238, 238, 255));
categoryplot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
CategoryDataset categorydataset = createDataset2();
categoryplot.setDataset(1, categorydataset);
categoryplot.mapDatasetToRangeAxis(1, 1);
CategoryAxis categoryaxis = categoryplot.getDomainAxis();
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
NumberAxis numberaxis = new NumberAxis("Secondary");
categoryplot.setRangeAxis(1, numberaxis);
LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();
lineandshaperenderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());
categoryplot.setRenderer(1, lineandshaperenderer);
categoryplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
LegendTitle legendtitle = new LegendTitle(categoryplot.getRenderer(0));
legendtitle.setMargin(new RectangleInsets(2D, 2D, 2D, 2D));
legendtitle.setBorder(new BlockBorder());
LegendTitle legendtitle1 = new LegendTitle(categoryplot.getRenderer(1));
legendtitle1.setMargin(new RectangleInsets(2D, 2D, 2D, 2D));
legendtitle1.setBorder(new BlockBorder());
BlockContainer blockcontainer = new BlockContainer(new BorderArrangement());
blockcontainer.add(legendtitle, RectangleEdge.LEFT);
blockcontainer.add(legendtitle1, RectangleEdge.RIGHT);
blockcontainer.add(new EmptyBlock(2000D, 0.0D));
CompositeTitle compositetitle = new CompositeTitle(blockcontainer);
compositetitle.setPosition(RectangleEdge.BOTTOM);
jfreechart.addSubtitle(compositetitle);
return jfreechart;
}

public static JPanel createDemoPanel()
{
JFreeChart jfreechart = createChart();
return new ChartPanel(jfreechart);
}

public static void main(String args[])
{
DualAxisDemo dualaxisdemo = new DualAxisDemo("DualAxisDemo");
dualaxisdemo.pack();
RefineryUtilities.centerFrameOnScreen(dualaxisdemo);
dualaxisdemo.setVisible(true);
}
}
zhihualee 2008-10-07
  • 打赏
  • 举报
回复
我也碰上此问题,唉,看来是无解啊,郁闷啊!!!!
勤奋地狱哥 2008-09-03
  • 打赏
  • 举报
回复
我也碰到这个问题,有高手么?
jansonzhan 2008-08-19
  • 打赏
  • 举报
回复
期待中……
Ghost_520 2008-03-21
  • 打赏
  • 举报
回复

继续顶起来~~

怎么没人来拿分啊~~

诶··
Ghost_520 2008-03-20
  • 打赏
  • 举报
回复

继续顶起来~~
Ghost_520 2008-03-20
  • 打赏
  • 举报
回复

我要的效果图在 http://www.cndw.com/tech/program/2006042861857.asp

就是在这个页面的最后一个图形
zsq007zsq007 2008-03-20
  • 打赏
  • 举报
回复
好象不行吧! 你可以弄个下拉列表
--柱状图
--饼状图
--XXX

根据选择的画图类型
分别画图
数据装载时稍有不同
不就行了!
我用jfreechart 时时这样做的!
favorite7w 2008-03-20
  • 打赏
  • 举报
回复
JFreechart的项目包里包含有很多示例,Lz可以在那找找。
Ghost_520 2008-03-20
  • 打赏
  • 举报
回复

顶起来~~~
Ghost_520 2008-03-20
  • 打赏
  • 举报
回复


真不感相信这就是 CSDN ~

简单的问题抢着回答,稍微难一点的就没有人来了。

难道 CSDN 上没有高手?????
Ghost_520 2008-03-20
  • 打赏
  • 举报
回复
继续顶起来~~

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧