java框架折线统计图教程(如何用java 画折线图)

本文目录
- 如何用java 画折线图
- Axure怎么绘制动态折线统计图
- 如何绘制折线统计图
- Java 大数据统计 折线图
- java做报表
- JAVA 从数据库按日期显示然后然后根据数据自动生成折线统计图怎么搞啊
- java统计图颜色把折线的颜色设置为自己想要的颜色,比如黑色,怎么弄代码如下
- java中用jframechart如何实现柱状折线组合图,请教高手,最好有个例子给我看看,谢谢!!
如何用java 画折线图
参考下面代码:
package com.lei.jfreechart;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class LineCharts extends ApplicationFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public LineCharts(String s) {
super(s);
setContentPane(createDemoLine());
}
public static void main(String args) {
LineCharts fjc = new LineCharts("折线图");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
}
// 生成显示图表的面板
public static JPanel createDemoLine() {
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
// 生成图表主对象JFreeChart
public static JFreeChart createChart(DefaultCategoryDataset linedataset) {
// 定义图表对象
JFreeChart chart = ChartFactory.createLineChart("一季度销售曲线", //折线图名称
"时间", // 横坐标名称
"销售额(百万)", // 纵坐标名称
linedataset, // 数据
PlotOrientation.VERTICAL, // 水平显示图像
true, // include legend
true, // tooltips
false // urls
);
CategoryPlot plot = chart.getCategoryPlot();
plot.setRangeGridlinesVisible(true); //是否显示格子线
plot.setBackgroundAlpha(0.3f); //设置背景透明度
NumberAxis rangeAxis = (NumberAxis)plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI / 2.0);
return chart;
}
// 生成数据
public static DefaultCategoryDataset createDataset() {
DefaultCategoryDataset linedataset = new DefaultCategoryDataset();
// 各曲线名称
String series1 = "冰箱";
String series2 = "彩电";
String series3 = "洗衣机";
// 横轴名称(列名称)
String type1 = "1月";
String type2 = "2月";
String type3 = "3月";
linedataset.addValue(0.0, series1, type1);
linedataset.addValue(4.2, series1, type2);
linedataset.addValue(3.9, series1, type3);
linedataset.addValue(1.0, series2, type1);
linedataset.addValue(5.2, series2, type2);
linedataset.addValue(7.9, series2, type3);
linedataset.addValue(2.0, series3, type1);
linedataset.addValue(9.2, series3, type2);
linedataset.addValue(8.9, series3, type3);
return linedataset;
}
}
Axure怎么绘制动态折线统计图
当你在工作中做一些原型时,特别是背景原型时,我们经常谈论统计数据。上次我详细介绍了如何绘制动态柱状统计图,这次我将向您展示详细的动态折线统计图绘制教程!如果此时你心里众多疑惑:Axure去哪学?怎么学?学多久?那不妨学习体验的Axure自学视频课!资深讲师授课,从基础的Axure软件功能到原型绘制到交互案例,综合全面的带你入门Axure产品原型设计!~
Axure绘制动态折线统计图步骤:
首先我们先把基础的横纵坐标画出来,横坐标我以“年份”作为单位,纵坐标我以“金额”作为单位,绘制出基础的横纵线,注意横纵之间的距离保持等距。
接着我们选择插入工具,选择钢笔工具,进行绘制弧度图案,并对图案线段设置颜色。
将绘制的图案转换成动态面板,并将动态面板宽度设置为1,高度保持不变。
设置完动态面板后,对动态面板进行交互设置,交互样式设置为:载入时-设置尺寸-当前目标,设置设置宽度为需要的长度,高度保持不变,动画选择线性600毫秒。
接着想要使原型更美观一些,可以在统计图上面对不同的年份增加“数量点”这样可以使统计图看的更直观明了。
这样我们的动态折线统计图就完成了。
以上即是关于“Axure怎么绘制动态折线统计图?”的全部精彩内容分享了,希望能够帮助到你!学习更多Axure原型技巧,不妨阅读更多Axure相关文章学习?Axure自学,不单止要学理论,还要实操!在就可以学习理论的同时上手实操!大家赶紧学习体验一下Axure自学视频课吧~
如何绘制折线统计图
问题一:怎么画折线统计图 选定表中想画图的数据就可以了点击插入,折线图,图表,选择添加数据
问题二:在excel中做折线统计图方法 点击插入,图表,折线图,选择添加数据,选定表中想画图的数据就可以了。
问题三:在word中如何做折线统计图表? 要做图,首先应该有个表格提供数据源吧?
做好表格之后,选中表格,插入 → 图片 → 图表,这个时候出来的是默认的直方图,可以右键单击直方图空白处,选择“图表类型”,然后来类型列表中选择“折线图”,最后单击“确定”即可。
问题四:EXCEL制作折线统计图方法,我不会弄 把题目写清楚。你不说清楚我也只能不清楚的说。
制作折憨图是在“插入”菜单中选择“图表”,选择折线图,之后一直“下一步”,有什么需要填充的就依样填充。
问题五:你能说一说如何制作折线统计图 excel插入图表,选择折线图。选择一种折线图样式。会出现一个excel表。将数据修改成你想做的那组数据就行了
问题六:如何制作下面表格的折线统计图 1,打开文档点击菜单栏“插入”→“图片”→“图表”。2,此图出现一个默认的“统计表”,单击“统计表”按鼠标右键选择“图表类型”。
3,在“图表类型”设置框中选择“折线图”选择适合自己的样式,然后按“确定”即可。参考教程: officezu/a/word/1585
问题七:在幻灯片中怎样绘制折线统计图 采用自选图形中的任意多边形来绘制,以Powerpoint2003为盯,绘制的方法是:
1、普通视图下,点击【自选图形】工具箱,在展开的自选图形列表菜单上,依次选择【线条】-【任意多边形】。
2、在区,于自己确认的起始点,单击鼠标左键,这样第一个点就确立了,鼠标移动到下一个确认的点,再次单击鼠标左键,这样,第一条线段就确立了,以此类推。
3、在确认的终点处,双击鼠标左键。这样,多个线段组成的折线就画好了。
技巧提示:在绘制好的折线对象上鼠标右击,在右键快捷菜单上,有一个【顶点】的选项,选择以后,你会发现刚才你绘制中鼠标点过的点,都显示了出来。并且,这些点的位置、曲线度都是可以调整的,并且可以继续添加点(跟3DS MAX的顶点差不多),这样就可以更精确的画出需要的形状。一试便知。
问题八:在excel中做折线统计图方法 点击插入,图表,折线图,选择添加数据,选定表中想画图的数据就可以了。
问题九:EXCEL制作折线统计图方法,我不会弄 把题目写清楚。你不说清楚我也只能不清楚的说。
制作折憨图是在“插入”菜单中选择“图表”,选择折线图,之后一直“下一步”,有什么需要填充的就依样填充。
问题十:绘制折线统计图的一般步骤是:()()()()?? 绘制单式折线统计图步骤:一:确定纵轴.横轴分别表示什么;
二:描点
三:连线
四:在点旁边注上数据
Java 大数据统计 折线图
你可以试试chrome加birt。其实jvm内存是有限的,几百万个点很快就吃光你的内存了。
如果你用birt虽然后台画的时候慢一点,但是结果就是一个网页展示jpg图片,所以前端用户那里应该还是比较快的。
java做报表
把数据库中需要的数据处理后做成可视化图表,根据不同需求可以做成不同形式的图表,节省时间,效果比较好,报表软件国外的话水晶报表,SAP公司的商业报表工具,作为SAP“集团”下的报表组件模块。10年事前盛行一时,后被SAP收购。但水晶报表(Crystal Report)在理论上只支持单数据集,对多集的支持依赖于数据库的运算能力(叉乘与联合等或写存储过程),多库一般难以支持。
国内的话FineReport,目前国内报表软件领域发展最成熟也是市场份额最高的。IDC的报告里,17年甚至超过SAP,IBM,在这个细分领域,也是Gartner的BI选型市场指南里唯一推荐的报表工具。零代码开发,类似excel的设计方式,上手简单。尤其数据字典、实际值和显示值等的设计更是切入快速开发的要害,这些放在别的语言和体系下往往要大量代码才能实现且频繁需要的功能放在FineReport里却只是几个操作的事情。移动端报表+可视化大屏。
JAVA 从数据库按日期显示然后然后根据数据自动生成折线统计图怎么搞啊
统计图使用 JFreeChart,比如现在取一个星期的日期数据,7天中每天都有数值,那么这样做
1、用冒泡法找出7天中数值最多的用来做折线统计图的峰值。
2、NEW出7个折线统计图的柱形并把7天的数值分别赋值。
然后界面就显示出来了
java统计图颜色把折线的颜色设置为自己想要的颜色,比如黑色,怎么弄代码如下
通过XYLineAndShapeRenderer改,setSeriesPaint改颜色,setSeriesStroke改画笔,知道了吗?
java中用jframechart如何实现柱状折线组合图,请教高手,最好有个例子给我看看,谢谢!!
是jFreeChart吧?
这是Struts中结合 jFreeChart 画3种图,是我自己一个项目用到的 你自己看看吧 其中为生成List数据 我是在数据库用取出来的 jFreeChart 的接受数据应该是 类似于二维数组型的 这个网上有介绍
public String chartDB() {
if (style.equals("饼图")) {
drawPieChart();
} else if (style.equals("垂直柱状统计图")) {
drawBarChart();
} else if (style.equals("折线统计图")) {
drawLineChart();
}
return SUCCESS;
}
private void drawLineChart() {
Map《String, Object》 session = ActionContext.getContext().getSession();
recordids = (String) session.get("recordids");
String; // 获得要查询的字段
String; // 各字段的中文名称
for (int i = 0; i 《 word.length; i++) {
field;
rowKeys;
}
StringBuffer sb = new StringBuffer("SELECT ");
for (int j = 0; j 《 field.length; j++) {
sb.append("sum(" + field + "), ");
}
sb
.append("DATE_FORMAT(bas_datestart,’%Y-%m’) from disasterrecord where bas_recordid in "
+ Util.typesToString(recordids)
+ " group by DATE_FORMAT(bas_datestart,’%Y-%m’)");
List《Object》 list = new SearchService().findBySql(sb.toString());
DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
String;
for (int k = 0; k 《 field.length; k++) {
for (int j = 0; j 《 list.size(); j++) {
if(list.get(j)==null){
category = "";
}else{
category.toString();
}
if(list.get(j) ==null){
dataSet.addValue(new Double(0), rowKeys);
}else{
dataSet.addValue(new Double(list.get(j).toString()),
rowKeys);
}
}
}
chart = ChartFactory.createLineChart(title, xname, yname, dataSet,
PlotOrientation.VERTICAL, true, true, false);
chart.getTitle().setFont(new Font("宋体", Font.BOLD, 15));
chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15));
CategoryPlot plot = (CategoryPlot) chart.getPlot();
CategoryAxis domainAxis = plot.getDomainAxis();
/*------设置X轴坐标上的文字-----------*/
domainAxis.setTickLabelFont(new Font("黑体", Font.PLAIN, 11));
/*------设置X轴的标题文字------------*/
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
/*------设置Y轴坐标上的文字-----------*/
numberaxis.setTickLabelFont(new Font("黑体", Font.PLAIN, 12));
/*------设置Y轴的标题文字------------*/
numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
}
private void drawBarChart() {
Map《String, Object》 session = ActionContext.getContext().getSession();
recordids = (String) session.get("recordids");
String; // 获得要查询的字段
String; // 各字段的中文名称
for (int i = 0; i 《 word.length; i++) {
field;
rowKeys;
}
StringBuffer sb = new StringBuffer("SELECT ");
if (type.equals("各地区各灾害")) {
for (int j = 0; j 《 field.length; j++) {
sb.append("sum(" + field + "), ");
}
sb
.append(" bas_cityarea from disasterrecord where bas_recordid in "
+ Util.typesToString(recordids)
+ " group by bas_cityarea");
} else {
for (int j = 0; j 《 field.length; j++) {
sb.append("sum(" + field + "), ");
}
sb
.append("Year(bas_datestart) from disasterrecord where bas_recordid in "
+ Util.typesToString(recordids)
+ " group by Year(bas_datestart)");
}
List《Object》 list = new SearchService().findBySql(sb.toString());
String; // 获得 各地区名 或者 年份
for (int k = 0; k 《 list.size(); k++) {
columnKeys.toString();
}
double;
for (int m = 0; m 《 rowKeys.length; m++) {
for (int n = 0; n 《 columnKeys.length; n++) {
if (list.get(n) == null) {
data = new Double(0);
} else {
data.toString());
}
}
}
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
rowKeys, columnKeys, data);
chart = ChartFactory.createBarChart3D(title, xname, yname, dataset,
PlotOrientation.VERTICAL, true, true, false);
CategoryPlot plot = chart.getCategoryPlot();// 获取图表区域对象
CategoryAxis domainAxis = plot.getDomainAxis();
// 水平底部列表
domainAxis.setLabelFont(new Font("黑体", Font.BOLD, 14));
// 水平底部标题
domainAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 12));
// 垂直标题
ValueAxis rangeAxis = plot.getRangeAxis();// 获取柱状
rangeAxis.setLabelFont(new Font("黑体", Font.BOLD, 15));
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑体", Font.BOLD, 15));
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
renderer.setItemLabelAnchorOffset(10D);
renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));
renderer.setItemLabelsVisible(true);
//设置每个地区所包含的平行柱的之间距离
//renderer.setItemMargin(0.3);
plot.setRenderer(renderer);
chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15));
}
public void drawPieChart() {
Map《String, Object》 session = ActionContext.getContext().getSession();
recordids = (String) session.get("recordids");
String sql = "";
String field.split("-");
if (type.equals("各地区各灾害")) {
sql = "SELECT sum("
+ field
+ ") +’’, bas_cityarea from disasterrecord where bas_recordid in "
+ Util.typesToString(recordids) + " group by bas_cityarea";
} else {
sql = "SELECT sum("
+ field
+ ") +’’, Year(bas_datestart) from disasterrecord where bas_recordid in "
+ Util.typesToString(recordids)
+ " group by Year(bas_datestart)";
}
List《Object》 list = new SearchService().findBySql(sql);
DefaultPieDataset data = new DefaultPieDataset();
for (Object o : list) {
if(o == null){
data.setValue(o.toString(), new Double(0));
}
data.setValue(o.toString()));
}
chart = ChartFactory.createPieChart(title, data, true, true, false);
Font font = new Font("SimSun", 10, 20);
TextTitle txtTitle = null;
txtTitle = chart.getTitle();
txtTitle.setFont(font);
PiePlot pieplot = (PiePlot)chart.getPlot();
pieplot.setLabelFont(font);
chart.getLegend().setItemFont(font);
}

更多文章:
compare with造句(用compared with和compared to造句)
2026年10月10日 23:30
tensorflow与keras对应版本(为什么tensorflow2.8没有keras)
2026年10月10日 22:10
maven仓库jar网站(如何在maven仓库中添加jar包)
2026年10月10日 19:50
利用地理空间数据云下载dem数据怎么知道具体位置?DEM数据获取
2026年10月10日 18:30
单例模式的几种实现方式(么是单例模式,并写出单例模式的2种实现方式)
2026年10月10日 17:10
easyui和elementui哪个好(element-ui 可以做网站吗)
2026年10月10日 14:00
tcp ip协议体系大致可以分成(TCP/IP体系共有几个层次)
2026年10月10日 12:30



