Java中如何让使用Python的统计包绘图看来是同道 。你提到的这个问题很难 。
java调用python容易 。java甚至可以直接调用python的类 。python调用java更容易了 。
不过GUI要想融合,据目前20年的技术来看,只有本土的可以 。比如以前的微软件ActiveX,不管你是什么语言开发的都可以在windows下用OLE方式嵌入 。
java的制图功能,因为它的设计理念 ,它是封闭的 。也就是说,除非你使用了它本地化的GUI方法 , 否则就不可能实现 。
那么说,如果我一定要实现怎么办呢?只能走很长的弯路 。方法还是有几个的 。
方法1:
在java的panel里嵌入一个浏览器 , 然后在浏览器里显示统计图表 。这个真是不要太容易了 。不管是你是python生成的本地图片 , 还是直接用javascript生成的图都可以嵌入进去 。美观不用说
方法2:
绘图使用开源的,比如plt之类的 。不过它被本地化成java版本的 。然后用java调用python,再用python产生数据后,通过jython调用java本地化的绘图工具 。
表面上看 , 这个东西就是没有价值的,为什么不直接用java调用绘图 。关键在于python本身对于数据处理的优势太明显 。轻松就可以完成复杂的数据结构处理 。所以还是有价值的
方法3:
浮动窗口方式 。这个就不说了 。如果你的java是固定在窗口特定位置的 。这个就容易了 。怎么浮动窗口要根据操作系统而定 。
方法4:简单方案
python生成图片后 , 输出成JPEG或者是PNG或者是GIF , 然后让JAVA显示这个图片 。这个可能是最最简单的 。
方法5:windows专用 , 不知道可否使用
仅限于特定场景,在要显示图片的地方,显示一个品红色的纯色图 。然后让python的图形输出转到directshow之类的API,直接写显卡 。这样就可以显示动画效果 。
java如何将数据库中的数据统计后用jfreechart显示出来(要具体代码)其实挺简单的java绘制统计图代码,注意java绘制统计图代码我写的注释!
%@ page contentType="text/html;charset=GB2312" %
%@ pageimport="org.jfree.chart.JFreeChart,org.jfree.chart.ChartUtilities,
org.jfree.chart.ChartFactory,
org.jfree.chart.plot.PlotOrientation,
org.jfree.data.category.DefaultCategoryDataset"%//上面是需要添加的头文件
html
body
%
String dataName[]=new String[]{"0-30岁","30-50岁","50-70岁","70岁以上"};//显示数据系列
int dataValueCount[]={4,5,4,6};//数据系列对应的值
//以上两行可以从数据库里去取值java绘制统计图代码 , 用循环写入数组
//------创建数据集,并设置值------
DefaultCategoryDataset categoryDataset = newDefaultCategoryDataset();//这个表示柱状图
for(int i=0;idataName.length;i)
categoryDataset.addValue(dataValueCount[i],dataName[i],dataName[i]);//循环写入数据集
String titleString="用户年龄阶段分布统计图";//图的标题
JFreeChart chart = ChartFactory.createBarChart(titleString,"用户年龄阶段","数量",
categoryDataset,PlotOrientation.VERTICAL,true,true,false);//chart就是欲创建的图表
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);//这行的意思是输出成一个JPEG形式的文件显示
%
/body
/html
其实后面还有很多参数的java绘制统计图代码,比如颜色,柱子的标题等等 , 太多属性了,这个你查看一下JFREECHART的文档就行了,比如下面这样,很容易吧 。
Font labelFont = new Font("SansSerif", Font.TRUETYPE_FONT, 12);
/*
* VALUE_TEXT_ANTIALIAS_OFF表示将文字的抗锯齿关闭,
* 使用的关闭抗锯齿后,字体尽量选择12到14号的宋体字,这样文字最清晰好看
*/
// chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
chart.setTextAntiAlias(false);
chart.setBackgroundPaint(Color.white);
// create plot
CategoryPlot plot = chart.getCategoryPlot();
// 设置横虚线可见
plot.setRangeGridlinesVisible(true);
// 虚线色彩
plot.setRangeGridlinePaint(Color.gray);
// 数据轴精度
NumberAxis vn = (NumberAxis) plot.getRangeAxis();
// vn.setAutoRangeIncludesZero(true);
DecimalFormat df = new DecimalFormat("#0.00");
vn.setNumberFormatOverride(df); // 数据轴数据标签的显示格式
// x轴设置
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setLabelFont(labelFont);// 轴标题
domainAxis.setTickLabelFont(labelFont);// 轴数值
属性比较多,不可能全贴出来,也不必全用,设置一些实用的属性即可 。
eclipse中用JAVA代码怎么画柱形图表用jfreechart
jfreechart绘制柱状图
import java.io.File;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
/*
* 绘制柱状图
*你亮哥
* */
public class BarChart3DDemo
{
public static void main(String[] args)
{
try
{
//设置主题
ChartFactory.setChartTheme(Theme.getTheme());
//构造数据
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "JAVA","1");
dataset.addValue(200, "js","1");
dataset.addValue(200, "C", "2");
dataset.addValue(300, "C", "3");
dataset.addValue(400, "HTML", "4");
dataset.addValue(400, "CSS", "5");
/*
* public static JFreeChart createBarChart3D(
* java.lang.String title, 设置图表的标题
* java.lang.String categoryAxisLabel, 设置分类轴的标示
* java.lang.String valueAxisLabel, 设置值轴的标示
* CategoryDataset dataset, 设置数据
* PlotOrientation orientation, 设置图表的方向
* boolean legend, 设置是否显示图例
* boolean tooltips,设置是否生成热点工具
* boolean urls) 设置是否显示url
*/
JFreeChart chart = ChartFactory.createBarChart3D("编程语言统计", "语言",
"学习人数", dataset, PlotOrientation.VERTICAL, true, false,
false);
//保存图表
ChartUtilities.saveChartAsPNG(new File("E:/chart/BarChart3D.png"), chart, 800, 500);
System.out.println("绘图完成");
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
===================================================================================
//一条线 有点 有数
package Test;
import java.awt.Color;
import java.awt.Font;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisSpace;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.TextAnchor;
public class try123 {
public static void main(String[] args){
//首先构造数据
TimeSeries timeSeries = new TimeSeries("BMI", Month.class);
// 时间曲线数据集合
TimeSeriesCollection lineDataset = new TimeSeriesCollection();
// 构造数据集合
timeSeries.add(new Month(1, 2009), 45);
timeSeries.add(new Month(2, 2009), 46);
timeSeries.add(new Month(3, 2009), 1);
timeSeries.add(new Month(4, 2009), 500);
timeSeries.add(new Month(5, 2009), 43);
timeSeries.add(new Month(6, 2009), 324);
timeSeries.add(new Month(7, 2009), 632);
timeSeries.add(new Month(8, 2009), 34);
timeSeries.add(new Month(9, 2009), 12);
timeSeries.add(new Month(10, 2009), 543);
timeSeries.add(new Month(11, 2009), 32);
timeSeries.add(new Month(12, 2009), 225);
lineDataset.addSeries(timeSeries);
JFreeChart chart = ChartFactory.createTimeSeriesChart("", "date", "bmi", lineDataset, true, true, true);
//增加标题
chart.setTitle(new TextTitle("XXXBMI指数", new Font("隶书", Font.ITALIC, 15)));
chart.setAntiAlias(true);
XYPlot plot = (XYPlot) chart.getPlot();
plot.setAxisOffset(new RectangleInsets(10,10,10,10));//图片区与坐标轴的距离
plot.setOutlinePaint(Color.PINK);
plot.setInsets(new RectangleInsets(15,15,15,15));//坐标轴与最外延的距离
// plot.setOrientation(PlotOrientation.HORIZONTAL);//图形的方向,包括坐标轴 。
AxisSpace as = new AxisSpace();
as.setLeft(25);
as.setRight(25);
plot.setFixedRangeAxisSpace(as);
chart.setPadding(new RectangleInsets(5,5,5,5));
chart.setNotify(true);
// 设置曲线是否显示数据点
XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot.getRenderer();
xylineandshaperenderer.setBaseShapesVisible(true);
// 设置曲线显示各数据点的值
XYItemRenderer xyitem = plot.getRenderer();
xyitem.setBaseItemLabelsVisible(true);
xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.INSIDE10, TextAnchor.BASELINE_LEFT));
xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
xyitem.setBaseItemLabelFont(new Font("Dialog", 1, 14));
plot.setRenderer(xyitem);
//显示
ChartFrame frame = new ChartFrame("try1", chart);
frame.pack();
frame.setVisible(true);
}
}
如何使用java程序画出条形统计图(我们老师要求我们用java实现条形统计图,数据来自于sqlserver中)条形统计图是用一个单位长度表示一定的数量java绘制统计图代码,根据数量的多少画成长短不同的直条java绘制统计图代码 , 然后把这些直条按一定的顺序排列起来 。从条形统计图中很容易看出各种数量的多少 。条形统计图一般简称条形图,也叫长条图或直条图 。条形统计图是用条形的长短来代表数量的大?。阌诒冉?。条形统计图又分为条形统计图和复式条形统计图,复式条形统计图由多种数据组成,用不同的颜色标出 。
所填答案为java绘制统计图代码:一定的数量数量的多少一定的顺序
如何使用java做统计图表//参考地址去网站下js控件,下面是饼图的代码,下图是我的代码效果
function query1(housetype,redStatisticsList,text0,cashingSum,tranferSum){
!--红包发放数据--
var myrodiusred = echarts.init(document.getElementById('mainrodius'));//ID
var redHousehold = housetype;
var redMoney = redStatisticsList;
var allMoney = 0;//总金额
$.each(redStatisticsList,function(index,item){
allMoney =allMoneyNumber(item.value);
})
optionTwo = {
title : {
text: text0,
subtext: "总金额:" allMoney "\n\n提现总额:" cashingSum "\n\n到账总额:" tranferSum,
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a} br/{b} ({d}%)"
},
legend: {
orient: 'vertical',
left: 'left',
data: housetype
},
series : [
{
type: 'pie',
radius : '55%',
center: ['50%', '60%'],
data:redMoney,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
myrodiusred.setOption(optionTwo);
}
【java绘制统计图代码 javaweb统计图】关于java绘制统计图代码和javaweb统计图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 阿里服务器的应用软件,阿里服务器操作系统
- cpu都有什么总线,cpu有哪些总线
- 劳拉格斗的游戏,劳拉出场动作
- word如何粗线变细线,word线条粗细
- oracle怎么使用的 oracle 使用
- win10安装.net失败,win10安装net47不成功
- 直播培训课程工具怎么用,直播培训班视频教程
- mysql表收藏夹怎么写 mysql 收缩表空间
- net开发会python吗,net开发怎么样