社区
Java SE
帖子详情
jfreechart,柱状图,一个柱上两种颜色。
lyszjs
2007-04-04 05:17:57
jfreechart,柱状图,一个柱上两种颜色。
找的很久都没找到,在jfree的官网上也没看到这样的例图,有人做过吗
...全文
963
4
打赏
收藏
jfreechart,柱状图,一个柱上两种颜色。
jfreechart,柱状图,一个柱上两种颜色。 找的很久都没找到,在jfree的官网上也没看到这样的例图,有人做过吗
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jianghuxiaoxiami
2007-04-10
打赏
举报
回复
package org.jfree.chart.demo;
import java.awt.Dimension;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import org.jfree.chart.*;
import org.jfree.chart.labels.*;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.StackedBarRenderer3D;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.*;
public class StackedBarChart3DDemo2 extends ApplicationFrame
{
public StackedBarChart3DDemo2(String s)
{
super(s);
CategoryDataset categorydataset = createDataset();
JFreeChart jfreechart = createChart(categorydataset);
ChartPanel chartpanel = new ChartPanel(jfreechart);
chartpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartpanel);
}
public CategoryDataset createDataset()
{
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(10D, "Series 1", "C1");
defaultcategorydataset.addValue(5D, "Series 1", "C2");
defaultcategorydataset.addValue(6D, "Series 1", "C3");
defaultcategorydataset.addValue(7D, "Series 1", "C4");
defaultcategorydataset.addValue(8D, "Series 1", "C5");
defaultcategorydataset.addValue(9D, "Series 1", "C6");
defaultcategorydataset.addValue(10D, "Series 1", "C7");
defaultcategorydataset.addValue(11D, "Series 1", "C8");
defaultcategorydataset.addValue(3D, "Series 1", "C9");
defaultcategorydataset.addValue(4D, "Series 2", "C1");
defaultcategorydataset.addValue(7D, "Series 2", "C2");
defaultcategorydataset.addValue(17D, "Series 2", "C3");
defaultcategorydataset.addValue(15D, "Series 2", "C4");
defaultcategorydataset.addValue(6D, "Series 2", "C5");
defaultcategorydataset.addValue(8D, "Series 2", "C6");
defaultcategorydataset.addValue(9D, "Series 2", "C7");
defaultcategorydataset.addValue(13D, "Series 2", "C8");
defaultcategorydataset.addValue(7D, "Series 2", "C9");
defaultcategorydataset.addValue(15D, "Series 3", "C1");
defaultcategorydataset.addValue(14D, "Series 3", "C2");
defaultcategorydataset.addValue(12D, "Series 3", "C3");
defaultcategorydataset.addValue(11D, "Series 3", "C4");
defaultcategorydataset.addValue(10D, "Series 3", "C5");
defaultcategorydataset.addValue(0.0D, "Series 3", "C6");
defaultcategorydataset.addValue(7D, "Series 3", "C7");
defaultcategorydataset.addValue(9D, "Series 3", "C8");
defaultcategorydataset.addValue(11D, "Series 3", "C9");
defaultcategorydataset.addValue(14D, "Series 4", "C1");
defaultcategorydataset.addValue(3D, "Series 4", "C2");
defaultcategorydataset.addValue(7D, "Series 4", "C3");
defaultcategorydataset.addValue(0.0D, "Series 4", "C4");
defaultcategorydataset.addValue(9D, "Series 4", "C5");
defaultcategorydataset.addValue(6D, "Series 4", "C6");
defaultcategorydataset.addValue(7D, "Series 4", "C7");
defaultcategorydataset.addValue(9D, "Series 4", "C8");
defaultcategorydataset.addValue(10D, "Series 4", "C9");
return defaultcategorydataset;
}
private JFreeChart createChart(CategoryDataset categorydataset)
{
JFreeChart jfreechart = ChartFactory.createStackedBarChart3D("Stacked Bar Chart 3D Demo 2", "Category", "Value", categorydataset, PlotOrientation.VERTICAL, true, true, false);
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
StackedBarRenderer3D stackedbarrenderer3d = (StackedBarRenderer3D)categoryplot.getRenderer();
stackedbarrenderer3d.setRenderAsPercentages(true);
stackedbarrenderer3d.setDrawBarOutline(false);
stackedbarrenderer3d.setItemLabelGenerator(new StandardCategoryItemLabelGenerator("{3}", NumberFormat.getIntegerInstance(), new DecimalFormat("0.0%")));
stackedbarrenderer3d.setItemLabelsVisible(true);
stackedbarrenderer3d.setPositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));
stackedbarrenderer3d.setNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));
return jfreechart;
}
public static void main(String args[])
{
StackedBarChart3DDemo2 stackedbarchart3ddemo2 = new StackedBarChart3DDemo2("Stacked Bar Chart 3D Demo 2");
stackedbarchart3ddemo2.pack();
RefineryUtilities.centerFrameOnScreen(stackedbarchart3ddemo2);
stackedbarchart3ddemo2.setVisible(true);
}
}
StackedBarChart3D demo,应该符合你的要求了
lyszjs
2007-04-10
打赏
举报
回复
看了上面的效果,是平面的,
我需要的最好是立体的。
不知道是不是一样的代码,只需改个方法或参数就可以了。
请知道的指教。
lyszjs
2007-04-10
打赏
举报
回复
我已经找到了。不过还是谢谢你了。
jianghuxiaoxiami
2007-04-05
打赏
举报
回复
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.StackedBarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class StackedBarChartDemo1 extends ApplicationFrame
{
public StackedBarChartDemo1(String s)
{
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(jpanel);
}
private static CategoryDataset createDataset()
{
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(32.399999999999999D, "Series 1", "Category 1");
defaultcategorydataset.addValue(17.800000000000001D, "Series 2", "Category 1");
defaultcategorydataset.addValue(27.699999999999999D, "Series 3", "Category 1");
defaultcategorydataset.addValue(43.200000000000003D, "Series 1", "Category 2");
defaultcategorydataset.addValue(15.6D, "Series 2", "Category 2");
defaultcategorydataset.addValue(18.300000000000001D, "Series 3", "Category 2");
defaultcategorydataset.addValue(23D, "Series 1", "Category 3");
defaultcategorydataset.addValue(11.300000000000001D, "Series 2", "Category 3");
defaultcategorydataset.addValue(25.5D, "Series 3", "Category 3");
defaultcategorydataset.addValue(13D, "Series 1", "Category 4");
defaultcategorydataset.addValue(11.800000000000001D, "Series 2", "Category 4");
defaultcategorydataset.addValue(29.5D, "Series 3", "Category 4");
return defaultcategorydataset;
}
private static JFreeChart createChart(CategoryDataset categorydataset)
{
JFreeChart jfreechart = ChartFactory.createStackedBarChart("Stacked Bar Chart Demo 1", "Category", "Value", categorydataset, PlotOrientation.VERTICAL, true, true, false);
jfreechart.setBackgroundPaint(Color.white);
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
categoryplot.setBackgroundPaint(Color.lightGray);
categoryplot.setRangeGridlinePaint(Color.white);
StackedBarRenderer stackedbarrenderer = (StackedBarRenderer)categoryplot.getRenderer();
stackedbarrenderer.setDrawBarOutline(false);
stackedbarrenderer.setItemLabelsVisible(true);
stackedbarrenderer.setSeriesItemLabelGenerator(0, new StandardCategoryItemLabelGenerator());
return jfreechart;
}
public static JPanel createDemoPanel()
{
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
public static void main(String args[])
{
StackedBarChartDemo1 stackedbarchartdemo1 = new StackedBarChartDemo1("Stacked Bar Chart Demo 1");
stackedbarchartdemo1.pack();
RefineryUtilities.centerFrameOnScreen(stackedbarchartdemo1);
stackedbarchartdemo1.setVisible(true);
}
}
你说的应该是堆栈图,上面这个Demo每个柱子上有3种颜色,其实就是每个Category有3个series了
自定义
JFreeChart
柱状图
的详细说明
如果需要在
一个
柱子上使用
两种
颜色
,可以利用`GradientPaint`。创建
一个
`GradientPaint`对象,然后将其设置为特定系列的渲染器的油漆,这样就可以在柱子的不同部分显示不同的
颜色
。例如,`renderer.setSeriesPaint...
jfreechart
实现
柱状图
排序
- **创建图表**:调用 `ChartFactory.createBarChart()` 方法创建
一个
柱状图
,并设置图表的各种属性,如标题、坐标轴标签等。 - **自定义渲染器**:可以使用 `BarRenderer` 来进一步定制
柱状图
的外观,例如
颜色
、...
Jfreechart
打造专业图表
JFreeChart
提供了丰富的API,允许开发者对图表的每
一个
细节进行定制,包括
颜色
、字体、标签、图例、背景等。通过调整这些参数,可以创建出符合特定设计风格的专业图表。 **总结:**
JFreeChart
是
一个
强大且灵活的...
jfreeChar 折线图+柱形图(混合图) +最新Jar包及例子
对于需要在同
一个
图表中展示
两种
不同类型数据的场景,混合图是很好的选择,而
JFreeChart
通过其灵活的API使得实现这个功能变得简单易行。通过深入学习和实践,你将能够利用
JFreeChart
创建出专业且富有洞察力的数据...
jfreechart
绘图
JFreeChart
是一款强大的Java库,用于创建高质量的2D图表,包括曲线图、
柱状图
、曲线加
柱状图
、饼图以及共享
一个
X轴的两个曲线图等。这款库在IT行业中广泛应用于数据分析和可视化,尤其适用于需要在Java应用程序、...
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章