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實輪岩現折線圖繪制你看看這個是蘆肆不是臘嘩御你要的