步骤 1 : 先看效果 步骤 2 : ChartUtil
增值内容,请先登录
完整的J2SE桌面项目,从无到有完整的开发流程,涵盖全部52个知识点,154个开发步骤, 一共36个讲解视频,累计时长3小时10分59秒,大小1.94G,充实J2SE项目经验,为简历加上一个有吸引力的砝码
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.objectplanet.chart.BarChart;
import com.objectplanet.chart.Chart;
public class ChartUtil {
public static int max(double[] sampleValues) {
int max = 0;
for (double v : sampleValues) {
if (v > max)
max = (int) v;
}
return max;
}
private static String[] sampleLabels() {
String[] sampleLabels = new String[30];
for (int i = 0; i < sampleLabels.length; i++) {
if (0 == i % 5)
sampleLabels[i] = String.valueOf(i + 1 + "日");
}
return sampleLabels;
}
public static Image getImage(int width, int height) {
// 模拟样本数据
double[] sampleValues = sampleValues();
// 下方显示的文字
String[] sampleLabels = sampleLabels();
// 样本中的最大值
int max = max(sampleValues);
// 数据颜色
Color[] sampleColors = new Color[] { ColorUtil.blueColor };
// 柱状图
BarChart chart = new BarChart();
// 设置样本个数
chart.setSampleCount(sampleValues.length);
// 设置样本数据
chart.setSampleValues(0, sampleValues);
// 设置文字
chart.setSampleLabels(sampleLabels);
// 设置样本颜色
chart.setSampleColors(sampleColors);
// 设置取值范围
chart.setRange(0, max * 1.2);
// 显示背景横线
chart.setValueLinesOn(true);
// 显示文字
chart.setSampleLabelsOn(true);
// 把文字显示在下方
chart.setSampleLabelStyle(Chart.BELOW);
// 样本值的字体
chart.setFont("rangeLabelFont", new Font("Arial", Font.BOLD, 12));
// 显示图例说明
chart.setLegendOn(true);
// 把图例说明放在左侧
chart.setLegendPosition(Chart.LEFT);
// 图例说明中的文字
chart.setLegendLabels(new String[] { "月消费报表" });
// 图例说明的字体
chart.setFont("legendFont", new Font("Dialog", Font.BOLD, 13));
// 下方文字的字体
chart.setFont("sampleLabelFont", new Font("Dialog", Font.BOLD, 13));
// 图表中间背景颜色
chart.setChartBackground(Color.white);
// 图表整体背景颜色
chart.setBackground(ColorUtil.backgroundColor);
// 把图表转换为Image类型
Image im = chart.getImage(width, height);
return im;
}
private static double[] sampleValues() {
double[] result = new double[30];
for (int i = 0; i < result.length; i++) {
result[i] = (int) (Math.random() * 300);
}
return result;
}
public static void main(String[] args) {
JPanel p = new JPanel();
JLabel l = new JLabel();
Image img = ChartUtil.getImage(400, 300);
Icon icon = new ImageIcon(img);
l.setIcon(icon);
p.add(l);
GUIUtil.showPanel(p);
}
}
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2020-12-24
怎么改变坐标的间隔
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2020-05-15
请问使用maven怎么导这个chart.jar包
2020-03-17
关于getImage()方法
2019-10-14
对于BarChart(没有参数), 找不到合适的构造器
2019-09-09
jdk12下导入包后仍无法使用BarChart类
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 8 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|