java做条形图_使用Jfree实现吧条形图,java代码
使用Jfree實(shí)現(xiàn)吧條形圖,java代碼。它可能在生產(chǎn)的報(bào)告被常用,之后,主動(dòng)生成自己的代碼,可以隨意查看。自由地配置圖表的各種性質(zhì),為了達(dá)到他們的要求和目標(biāo)package test1;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.labels.*;
import org.jfree.data.category.*;
import java.awt.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.jfree.ui.*;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.servlet.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.general.DatasetUtilities;
import com.dao.DBConnection;
public class JfreeChart {
public static void main(String[] args) throws IOException, SQLException {
// TODO Auto-generated method stub
double[][] data = new double[][] {
{ 1230, 1110, 1120, 1210, 720, 750, 860, 800, 1230, 1110, 1120,
1210, 720, 750, 860, 800, 1230, 1110, 1120, 1210, 720,
750, 860, 800 },
{ 720, 750, 860, 800, 1230, 1110, 1120, 1210, 720, 750, 860,
800, 720, 750, 860, 800, 1230, 1110, 1120, 1210, 720,
750, 860, 800 } };
String[] rowKeys = { "a", "b" };
String[] columnKeys = { "0", "1", "2", "3", "4", "5", "6", "7", "8",
"9", "10", "11", "12", "13", "14", "15", "16", "17", "18",
"19", "20", "21", "22", "23" };
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
rowKeys, columnKeys, data);
JFreeChart chart = ChartFactory.createBarChart(getNextDay() + "日交易量",
"時(shí)間(/h)", "交易量", dataset, PlotOrientation.VERTICAL, true, true,
false);
CategoryPlot plot = chart.getCategoryPlot();
// 設(shè)置網(wǎng)格背景顏色
plot.setBackgroundPaint(Color.white);
// 設(shè)置網(wǎng)格豎線(xiàn)顏色
plot.setDomainGridlinePaint(Color.pink);
// 設(shè)置網(wǎng)格橫線(xiàn)顏色
plot.setRangeGridlinePaint(Color.pink);
// 顯示每一個(gè)柱的數(shù)值,并改動(dòng)該數(shù)值的字體屬性
BarRenderer renderer = new BarRenderer();
// renderer.setBaseItemLabelGenerator(new
// StandardCategoryItemLabelGenerator());
// renderer.setBaseItemLabelsVisible(true);
// 默認(rèn)的數(shù)字顯示在柱子中,通過(guò)例如以下兩句可調(diào)整數(shù)字的顯示
// 注意:此句非常關(guān)鍵,若無(wú)此句,那數(shù)字的顯示會(huì)被覆蓋,給人數(shù)字沒(méi)有顯示出來(lái)的問(wèn)題
// renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
// ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
// renderer.setItemLabelAnchorOffset(10D);
// 設(shè)置每一個(gè)地區(qū)所包括的平行柱的之間距離
renderer.setItemMargin(0.05);
plot.setRenderer(renderer);
// 設(shè)置地區(qū)、銷(xiāo)量的顯示位置
// 將下方的“標(biāo)注”放到上方
// plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
// 將默認(rèn)放在左邊的“銷(xiāo)量”放到右方
// plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
drawToOutputStream("src//a.jpg", chart);
}
/**
* step3: 輸出圖表到指定的磁盤(pán)
*
* @param destPath
* @param chart
*/
public static void drawToOutputStream(String destPath, JFreeChart chart) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(destPath);
// ChartUtilities.writeChartAsJPEG(
ChartUtilities.writeChartAsPNG(fos, // 指定目標(biāo)輸出流
chart, // 圖表對(duì)象
1000, // 寬
500, // 高
null); // ChartRenderingInfo信息
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static String getNextDay() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1); // 得到前一天
Date date = calendar.getTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
// System.out.println(df.format(date));
return df.format(date);
}
}
顯示生成結(jié)果:
版權(quán)聲明:本文博主原創(chuàng)文章。博客,未經(jīng)同意不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的java做条形图_使用Jfree实现吧条形图,java代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java8压缩,如何使用Java 8压缩
- 下一篇: 战龙四驱java_《战龙四驱》中都有哪些