java折线图
Ⅰ 如何在netbeans6.8中用java语言绘制类型于下图的折线图,要有详细代码
.swing.JFrame{
/**
*CreatesnewformXYJFrame
*/
publicXYJFrame(){
initComponents();
iniCoordinate();
}
/**
*Netbeans生成的代码,用于界面设计
*/
@SuppressWarnings("unchecked")
//<editor-folddefaultstate="collapsed"desc="GeneratedCode">
privatevoidinitComponents(){
lblXCoordinate=newjavax.swing.JLabel();
lblYCoordinate=newjavax.swing.JLabel();
txtXCoordinate=newjavax.swing.JTextField();
txtYCoordinate=newjavax.swing.JTextField();
btnCalculateY=newjavax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
lblXCoordinate.setText("X坐标");
lblYCoordinate.setText("Y坐标");
btnCalculateY.setText("计算Y坐标");
btnCalculateY.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
btnCalculateYActionPerformed(evt);
}
枯梁});
javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
没判运layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(37,37,37)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblXCoordinate)
.addComponent(lblYCoordinate))
.addGap(29,29,29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)
冲梁.addComponent(txtXCoordinate)
.addComponent(txtYCoordinate,javax.swing.GroupLayout.DEFAULT_SIZE,165,Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup()
.addComponent(btnCalculateY)
.addGap(30,30,30)))
.addContainerGap(131,Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(70,70,70)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblXCoordinate)
.addComponent(txtXCoordinate,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(24,24,24)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblYCoordinate)
.addComponent(txtYCoordinate,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(28,28,28)
.addComponent(btnCalculateY)
.addContainerGap(103,Short.MAX_VALUE))
);
pack();
}//</editor-fold>
(java.awt.event.ActionEventevt){
this.txtYCoordinate.setText(this.calculateY()+"");
}
/**
*@
*/
publicstaticvoidmain(Stringargs[]){
/*SettheNimbuslookandfeel*/
//<editor-folddefaultstate="collapsed"desc="Lookandfeelsettingcode(optional)">
/*IfNimbus(introcedinJavaSE6)isnotavailable,staywiththedefaultlookandfeel.
*Fordetailsseehttp://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try{
for(javax.swing.UIManager.LookAndFeelInfoinfo:javax.swing.UIManager.getInstalledLookAndFeels()){
if("Nimbus".equals(info.getName())){
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
}catch(ClassNotFoundExceptionex){
java.util.logging.Logger.getLogger(XYJFrame.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}catch(InstantiationExceptionex){
java.util.logging.Logger.getLogger(XYJFrame.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}catch(IllegalAccessExceptionex){
java.util.logging.Logger.getLogger(XYJFrame.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}catch(javax.swing.){
java.util.logging.Logger.getLogger(XYJFrame.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}
//</editor-fold>
/*Createanddisplaytheform*/
java.awt.EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
newXYJFrame().setVisible(true);
}
});
}
privatevoidiniCoordinate(){
//转折点X坐标
dbXCoordinate=newdouble[]{0,0.1,0.3,0.5,1};
//转折点Y坐标
dbYCoordinate=newdouble[]{0,0.4,0.7,0.85,1};
}
//计算Y坐标
privatedoublecalculateY(){
doublexCoordinate=Double.parseDouble(this.txtXCoordinate.getText());
intxPos=getXPositon(xCoordinate);
returnxPos==-1?-1:(dbYCoordinate[xPos]*xCoordinate)/dbXCoordinate[xPos];
}
//得到输入的X值位置,确定比率
privateintgetXPositon(doublexCoordinate){
for(inti=0;i<dbXCoordinate.length;i++){
if(xCoordinate<=dbXCoordinate[i]){
returni;
}
}
return-1;
}
privatedouble[]dbXCoordinate=newdouble[5];
privatedouble[]dbYCoordinate=newdouble[5];
privatedouble[]rate=newdouble[5];
//Variablesdeclaration-donotmodify
privatejavax.swing.JButtonbtnCalculateY;
privatejavax.swing.JLabellblXCoordinate;
privatejavax.swing.JLabellblYCoordinate;
privatejavax.swing.JTextFieldtxtXCoordinate;
privatejavax.swing.JTextFieldtxtYCoordinate;
//Endofvariablesdeclaration
}
Ⅱ Java 大数据统计 折线图
你可以试岩颤派试chrome加birt。其实jvm内存是有限的,几百万个点很洞蔽快就吃光你的内存了。
如果你用birt虽然后台画的时候慢一点,但是结果就是一粗贺个网页展示jpg图片,所以前端用户那里应该还是比较快的。
Ⅲ java怎么生成折线图,传入月份(1,2,3)生产数量(100,200,300),然后生成一个折线图,最好是曲线图,谢
按照你的要求编写的折线图程序如下:生成的图片放在D盘根巧隐纳目录下,文件名是testline.png
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
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 {
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());
saveAsFile(jfreechart, "D://testline.png", 500, 300);
return new ChartPanel(jfreechart);
}
// 生成图表主对象JFreeChart public static JFreeChart createChart(DefaultCategoryDataset linedataset) {
//定义图表对象
JFreeChart chart = ChartFactory.createLineChart("LineChart", // chart title
"Time", // domain axis label
"Quantity", // range axis label
linedataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, //携猜 tooltips
false //孝没 urls
);
CategoryPlot plot = chart.getCategoryPlot();
// customise the range axis...
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(1);
rangeAxis.setLabelAngle(Math.PI / 2.0);
return chart; }
//生成数据 public static DefaultCategoryDataset createDataset() {
DefaultCategoryDataset linedataset = new DefaultCategoryDataset();
// 各曲线名称
String series1 = "car";
// 横轴名称(列名称)
String type1 = "Jan";
String type2 = "Feb";
String type3 = "Mar";
linedataset.addValue(100, series1, type1); linedataset.addValue(200, series1, type2);
linedataset.addValue(300, series1, type3);
return linedataset; }
public static void saveAsFile(JFreeChart chart, String outputPath,
int weight, int height) {
FileOutputStream out = null;
try {
File outFile = new File(outputPath);
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdirs();
}
out = new FileOutputStream(outputPath);
// 保存为PNG文件
ChartUtilities.writeChartAsPNG(out, chart, 600, 350);
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
// do nothing
}
}
}
}
}
Ⅳ Java开发jfreechart的折线图时,想要实现鼠标移向每个折点时只显示Y轴对应的数值,应该怎么做
jfreechart只能产生静态图表,鼠标移上去显示的数值,实际上是靠html 的map来实现的,因此那个矩形框前顷桥是浏览慧猛器显示的,与代码无关,所以也改不了乎空的。
至于只显示Y轴的值,请从chart得到plot,然后再从plot得到renderer,再自定义renderer的ToolTipGenerator,从而实现自定义的tooltip.
如果想要更动态的图表,可以使用flash图表,如fusioncharts
Ⅳ 北大青鸟java培训:数据可视化图表类型分析
数据的可视化显示能够让我们的工作更加流畅,以及对项目的发展状态有直观的了解。
今天我们就一起来学习一下,常见的数据可视化图都有哪些类型。
折线族氏图折线图可能是常见的可视化方式了,它可以让用户很直观地按照时间维度了解系统的情况。
系统中每个单一或聚合的指标都会以一条折线在图表中体现。
但当同一个图表中同时存在多条折线时,就可能会对阅读有所影响,所以大多数情况下都可以选择仅查看其中的少数几条折线,而不是让所有折线同时显示。
如果某个指标的数值产生了大于正常范围的波动,就会很容易发现。
例如下图中异常的紫线、黄线、浅蓝线。
折线图的另一个用法是可以将多条折线堆叠起来以显示它们之间的关系。
例如对于通过折线图反映服务器的请求数量,可以单独看到每台服务器上的请求,也可以聚合在一起看。
这就可以在同一个图表中灵活查看整个系统以及每个实例的情况了。
热力图另一种常见的可视化方式是热力图。
热力图与条形图比较类似,还可以在条形图的基础上显示某部分在兆皮散整体中占比的变化情况。
例如在查看网络请求延时的时候,就可以使用热力图快速查看到所有网络请求的总体趋势和分布情况,另外,它可以使用不同颜色来表示不同部分的数值。
仪表图还有一种常见的可视化方式是仪表图,用户可以通过仪表图快速了解单个指标。
仪表一般用于单个指标的显示,例如车速表代表汽车的行驶速度、油量表代表油箱中的汽油量等等。
大多数的仪表图都有一个共通点,就是会划分出所示指标的对应状态。
除了常规仪表样式的显示方式之外,还有较为直接的数据显示方式,配合相同的配色方案,一眼就可以看出各个指标所处的状态,这一点与和仪表的特点类似。
用户不需要仔细阅读,就可以大致了解各个指标的不同状态。
这种类型的可视化是我常用的类型,在数秒钟之间,我就可以全面地总览系统各方面地运行情况。
火焰图由Netflix的BrendanGregg在2011年开始使用的火焰图是一种较为少见地可视化方式。
它不像仪表图那样可以从图表中快速得到关键信息,通常只会在需要解决某个应用的问题的时候才会用到这种图表。
火焰图主要用于CPU、内存和相关帧方面的表示,X轴按字母顺序将帧一一列出,而Y轴则表示堆栈的深度。
图中每个矩形都是一个标明了调用的函数的堆栈帧。
矩形越宽,就表示它在堆栈中出现越频繁。
java课握绝程培训机构http://www.kmbdqn.cn/发现在分析系统性能问题的时候,火焰图能够起到很大的作用,大家不妨尝试一下。
Ⅵ 如何用java 画折线图
packagecom.lei.jfreechart;
importjavax.swing.JPanel;
importorg.jfree.chart.ChartFactory;
importorg.jfree.chart.ChartPanel;
importorg.jfree.chart.JFreeChart;
importorg.jfree.chart.axis.NumberAxis;
importorg.jfree.chart.plot.CategoryPlot;
importorg.jfree.chart.plot.PlotOrientation;
importorg.jfree.data.category.DefaultCategoryDataset;
importorg.jfree.ui.ApplicationFrame;
importorg.jfree.ui.RefineryUtilities;
{
/**
*
*/
=1L;
publicLineCharts(Strings){
super(s);
setContentPane(createDemoLine());
}
publicstaticvoidmain(String[]args){
LineChartsfjc=newLineCharts("折嫌隐线图");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
}
//生成显示图表的面板
(){
JFreeChartjfreechart=createChart(createDataset());
returnnewChartPanel(jfreechart);
}
//生成图表主对象JFreeChart
(){
//定义图表对象
JFreeChartchart=ChartFactory.createLineChart("一季度销售曲线",//折线图名称
"时间",//横坐标名称
"销售额(百万)",//纵坐标名称
linedataset,//数据
PlotOrientation.VERTICAL,//水平显示图像
true,//includelegend
true,//tooltips
false//urls
);
CategoryPlotplot=chart.getCategoryPlot();
plot.setRangeGridlinesVisible(true);//是否显示格子线
plot.setBackgroundAlpha(0.3f);//设置背景透明度
NumberAxisrangeAxis=(NumberAxis)plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
前者巧rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI/2.0);
returnchart;
}
//生成数据
(){
=newDefaultCategoryDataset();
//各曲线名称
Stringseries1="冰箱";
Stringseries2="彩电";
Stringseries3="洗衣机";
//横轴名称(列名称)
Stringtype1="1月";
Stringtype2="2月";
慧键Stringtype3="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);
returnlinedataset;
}
}
网友分享,看看是否能帮到你
Ⅶ 已知两个坐标轴上的数值点怎么用java做一个折线图
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
public class t3 extends JFrame {
t3()
{
this.setSize(200, 200);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}
public static void main(String[] args)throws Exception{
new t3();
}
Point[] p = new Point[]{new Point(1,1),new Point(11,31),new Point(31,21),new Point(99,100)};
public void paint(Graphics g)
{
Image img = (Image)new BufferedImage(200,200,BufferedImage.SCALE_DEFAULT);
Graphics gg = img.getGraphics();
for(int i=0;i<p.length-1;i++)
{
gg.drawLine(p[i].x, 200-p[i].y,p[i+1].x, 200-p[i+1].y);
}
g.drawImage(img, 0, 0, null);
}
}
Ⅷ JAVA绘制折线图
其指型实你只乎链需要百唯顷猜度一下.
http://hi..com/javashmily/item/8f9aea3dd9070ffade222182
Ⅸ java折线图echarts 怎么用
可以去官网下载它的资源包,裂斗然培扒后根据自配源昌己想要的图,在官网找到它的js,一般的数据都是改它js里面的一段json数组,你只要在后台通过sql语句拿到数据,用json数组格式传到前台就可以了。
Ⅹ 我想用java在一个窗体中绘制多条折线图,可以实现吗
JAVA Swing使用JFreeChart实轮岩现折线图绘制你看看这个是芦肆不是腊哗御你要的