📄 caky.java
字号:
package com.mwq.chart;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.util.Rotation;
/**
* @author mwq
*
*/
public class Caky extends StatChart {
private String[] cutline;// 图例名称
private double[] data;// 绘图数据
private PiePlot plot;// 绘图区实例
// 生成图片
public String draw() {
DefaultPieDataset dataset = new DefaultPieDataset();
for (int i = 0; i < cutline.length; i++) {
dataset.setValue(cutline[i], data[i]);
}
chart = ChartFactory.createPieChart3D(chartTitle, // 图表标题
dataset, // 绘图数据集
false, // 是否绘制图例
true, // 在扇形上是否提供热点信息
false // 在扇形上是否提供热点链接
);
this.defineChart();
this.definePlot();
this.defineSector();
this.defineLabel();
return drawHotspot(false);
}
// 定义绘图区
protected void definePlot() {
plot = (PiePlot) chart.getPlot();
// 设置绘图区背景色
GradientPaint bg = new GradientPaint(0, 50, new Color(248, 253, 255),
0, 250, new Color(205, 237, 252));
plot.setBackgroundPaint(bg);
plot.setIgnoreNullValues(true);// 不显示绘图数据设为NULL的图例,默认为显示(false)
plot.setIgnoreZeroValues(false);// 显示绘图数据设为0的图例,默认为显示(false)
}
// 定义扇形
private void defineSector() {
plot.setCircular(false); // 设置饼图的外观为椭圆,默认为正圆(true)
plot.setForegroundAlpha(0.8f); // 设置饼图的透明度
plot.setStartAngle(90); // 设置开始绘制第1段圆弧的角度
plot.setDirection(Rotation.ANTICLOCKWISE); // 设置饼图的绘制方向为逆时针
}
// 定义标识符
private void defineLabel() {
plot.setLabelFont(new Font("汉真广标", Font.PLAIN, 12)); // 设置饼图标签的字体
plot.setLabelBackgroundPaint(Color.YELLOW); // 设置图例名称背景色
}
/**
* @param cutline
* 要设置的 cutline
*/
public void setCutline(String[] cutline) {
this.cutline = cutline;
}
/**
* @param data
* 要设置的 data
*/
public void setData(double[] data) {
this.data = data;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -