//创建曲线图
public String linePic(DT_KpiData kpi_data,String fileName,int width,int height,int img_type)
{
try
{
if(kpi_data == null || kpi_data.vec_val.size() == 0) return("");
double max_val = 0;//最大值
double min_val = 0;//最小值
boolean flag = false;
DefaultCategoryDataset data = new DefaultCategoryDataset();//设定数据源
for (int j = 0; j < kpi_data.vec_val.size() - 1; j++)
{
DT_KpiValue data_bt = (DT_KpiValue)kpi_data.vec_val.elementAt(j);
if(data_bt.vec_val == null)
{
if (j == 0 && kpi_data.vec_val.size() > 2)
{
max_val = data_bt.col_val;
min_val = data_bt.col_val;
}
else
{
if (data_bt.col_val > max_val) max_val = data_bt.col_val;
if (data_bt.col_val < min_val) min_val = data_bt.col_val;
}
data.addValue(data_bt.col_val, null, data_bt.col_name);
}
else
{
flag = true;
if(j == 0 && data_bt.vec_val.size() > 2) min_val = data_bt.col_val;
else min_val = 0;
for(int k = 0;k < data_bt.vec_val.size() - 1;k++)
{
DT_KpiValue dt_kpivalue2 = (DT_KpiValue)data_bt.vec_val.elementAt(k);
if(dt_kpivalue2.col_val > max_val) max_val = dt_kpivalue2.col_val;
if(dt_kpivalue2.col_val < min_val) min_val = dt_kpivalue2.col_val;
data.addValue(dt_kpivalue2.col_val, dt_kpivalue2.col_name, data_bt.col_name);
}
}
}
//创建曲线图
JFreeChart chart = null;
CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
//CategoryLabelGenerator generator = new StandardCategoryLabelGenerator();
DT_KpiValue dt_kpivalue = (DT_KpiValue)kpi_data.vec_val.elementAt(kpi_data.vec_val.size() - 1);
if(flag) {
chart=ChartFactory.createLineChart(kpi_data.name,dt_kpivalue.col_name,kpi_data.unit,data,PlotOrientation.VERTICAL, true, true, false);
//chart = ChartFactory.createLineChart(kpi_data.name,
//dt_kpivalue.col_name, kpi_data.unit, data, true, true, false);
}
else chart = ChartFactory.createLineChart(kpi_data.name,dt_kpivalue.col_name,kpi_data.unit,data,PlotOrientation.VERTICAL, false, true, false); // 设置背景色
chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 1000, 0, Color.lightGray));
//设置标题
// chart.setTitle(new TextTitle(kpi_data.name, new Font("隶书", Font.ITALIC, 15)));
CategoryPlot plot = (CategoryPlot)chart.getPlot();
//设置描点
LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)plot.getRenderer();
//lineandshaperenderer.setDrawLines(true); //设定前景透明度(0-1.0之间)
plot.setForegroundAlpha(0.9f);
//plot.setValueLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12));
//plot.setSectionLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12)); //注意以下代码
NumberAxis verticalAxis = (NumberAxis)plot.getRangeAxis();
//设定Y轴的最大值和最小值
if (max_val - min_val < min_val * 0.15)
{
min_val = min_val * 1.25 - max_val * 0.25;
max_val = max_val * 1.25 - min_val * 0.25;
}
else
{
min_val = min_val * 0.85;
max_val = max_val * 1.05;
}
verticalAxis.setMinimumAxisValue(min_val);
verticalAxis.setMaximumAxisValue(max_val);
verticalAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
//verticalAxis.setItemLabelsVisible(true);
//verticalAxis.setShapesVisible(true);
lineandshaperenderer.setDrawShapes(true);
lineandshaperenderer.setItemLabelsVisible(true);
lineandshaperenderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
ItemLabelPosition itemlabelposition = new ItemLabelPosition();
lineandshaperenderer.setPositiveItemLabelPosition(itemlabelposition); String img_name = String.valueOf(Math.random());
if(img_type == 0) img_name += ".jpeg";
else img_name += ".png";
fileName += img_name;
int chart_width = 0;
if (kpi_data.vec_val.size() > 10) chart_width = (kpi_data.vec_val.size() - 1) * 50 + 200;
else chart_width = width;
if(img_type == 0) ChartUtilities.saveChartAsJPEG(new File(fileName),100,chart,chart_width, height);
else ChartUtilities.saveChartAsPNG(new File(fileName),chart,chart_width, height);
return(img_name);
}
catch(Exception e){System.out.println(e.getMessage());return "";}
}
为什么鼠标移动到曲线点上的时候没办法显示y轴的值呢郁闷啊 星期一就要上线了 同志们帮帮忙看看
public String linePic(DT_KpiData kpi_data,String fileName,int width,int height,int img_type)
{
try
{
if(kpi_data == null || kpi_data.vec_val.size() == 0) return("");
double max_val = 0;//最大值
double min_val = 0;//最小值
boolean flag = false;
DefaultCategoryDataset data = new DefaultCategoryDataset();//设定数据源
for (int j = 0; j < kpi_data.vec_val.size() - 1; j++)
{
DT_KpiValue data_bt = (DT_KpiValue)kpi_data.vec_val.elementAt(j);
if(data_bt.vec_val == null)
{
if (j == 0 && kpi_data.vec_val.size() > 2)
{
max_val = data_bt.col_val;
min_val = data_bt.col_val;
}
else
{
if (data_bt.col_val > max_val) max_val = data_bt.col_val;
if (data_bt.col_val < min_val) min_val = data_bt.col_val;
}
data.addValue(data_bt.col_val, null, data_bt.col_name);
}
else
{
flag = true;
if(j == 0 && data_bt.vec_val.size() > 2) min_val = data_bt.col_val;
else min_val = 0;
for(int k = 0;k < data_bt.vec_val.size() - 1;k++)
{
DT_KpiValue dt_kpivalue2 = (DT_KpiValue)data_bt.vec_val.elementAt(k);
if(dt_kpivalue2.col_val > max_val) max_val = dt_kpivalue2.col_val;
if(dt_kpivalue2.col_val < min_val) min_val = dt_kpivalue2.col_val;
data.addValue(dt_kpivalue2.col_val, dt_kpivalue2.col_name, data_bt.col_name);
}
}
}
//创建曲线图
JFreeChart chart = null;
CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
//CategoryLabelGenerator generator = new StandardCategoryLabelGenerator();
DT_KpiValue dt_kpivalue = (DT_KpiValue)kpi_data.vec_val.elementAt(kpi_data.vec_val.size() - 1);
if(flag) {
chart=ChartFactory.createLineChart(kpi_data.name,dt_kpivalue.col_name,kpi_data.unit,data,PlotOrientation.VERTICAL, true, true, false);
//chart = ChartFactory.createLineChart(kpi_data.name,
//dt_kpivalue.col_name, kpi_data.unit, data, true, true, false);
}
else chart = ChartFactory.createLineChart(kpi_data.name,dt_kpivalue.col_name,kpi_data.unit,data,PlotOrientation.VERTICAL, false, true, false); // 设置背景色
chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 1000, 0, Color.lightGray));
//设置标题
// chart.setTitle(new TextTitle(kpi_data.name, new Font("隶书", Font.ITALIC, 15)));
CategoryPlot plot = (CategoryPlot)chart.getPlot();
//设置描点
LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)plot.getRenderer();
//lineandshaperenderer.setDrawLines(true); //设定前景透明度(0-1.0之间)
plot.setForegroundAlpha(0.9f);
//plot.setValueLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12));
//plot.setSectionLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12)); //注意以下代码
NumberAxis verticalAxis = (NumberAxis)plot.getRangeAxis();
//设定Y轴的最大值和最小值
if (max_val - min_val < min_val * 0.15)
{
min_val = min_val * 1.25 - max_val * 0.25;
max_val = max_val * 1.25 - min_val * 0.25;
}
else
{
min_val = min_val * 0.85;
max_val = max_val * 1.05;
}
verticalAxis.setMinimumAxisValue(min_val);
verticalAxis.setMaximumAxisValue(max_val);
verticalAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
//verticalAxis.setItemLabelsVisible(true);
//verticalAxis.setShapesVisible(true);
lineandshaperenderer.setDrawShapes(true);
lineandshaperenderer.setItemLabelsVisible(true);
lineandshaperenderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
ItemLabelPosition itemlabelposition = new ItemLabelPosition();
lineandshaperenderer.setPositiveItemLabelPosition(itemlabelposition); String img_name = String.valueOf(Math.random());
if(img_type == 0) img_name += ".jpeg";
else img_name += ".png";
fileName += img_name;
int chart_width = 0;
if (kpi_data.vec_val.size() > 10) chart_width = (kpi_data.vec_val.size() - 1) * 50 + 200;
else chart_width = width;
if(img_type == 0) ChartUtilities.saveChartAsJPEG(new File(fileName),100,chart,chart_width, height);
else ChartUtilities.saveChartAsPNG(new File(fileName),chart,chart_width, height);
return(img_name);
}
catch(Exception e){System.out.println(e.getMessage());return "";}
}
为什么鼠标移动到曲线点上的时候没办法显示y轴的值呢郁闷啊 星期一就要上线了 同志们帮帮忙看看
解决方案 »
- 关于手机端连接jsp后台的问题
- 怎么使php中的复选框为不可选状态
- 在数据库(Oracle)视图中有两个字段 pw_xml pw_xsl,分别保存的是student.xml和studen,怎样写个方法(方法名.java) 把xml和xsl里面的内容显示到jsp页面中?
- Hibernate数据库操作出现的怪问题(像假死)
- JavaBean的生存期问题
- 怎么JavaBena老是出错package test does not exist
- 关于文件上载的奇怪现象
- Can't find bundle for base name Connection(怎么找不到properties文件)
- tomcat在哪个地方配置服务器的虚拟路径?在哪个地方改端口号(附server.xml代码)????(1)
- 最近遇到的一个Java Socket通信的小问题
- jboss 配置 oracle 数据源
- 100分也不是好赚的啊``JSP问题
你需要一个info 才能生成热点
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
try{
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
filename = ServletUtilities.saveChartAsPNG(chart,600,360,null,request.getSession());
ChartUtilities.writeImageMap(pw, filename,info,true);
pw.flush();
}catch(Exception e){
System.out.print(e.getMessage());
}