永发信息网

如何用java绘制矩阵的图

答案:1  悬赏:80  手机版
解决时间 2021-11-09 21:56
如何用java绘制矩阵的图
最佳答案
{{2018,20},{2017,30},{2016,15}}
    可以使用第三方的 JFreeChart 等 进行图表绘制, 优点 可以输出图片,可以显示到网页或者JFrame/Frame窗口上. 缺点: 效果不是很好看.实现动态效果比较麻烦
    可以使用JavaFX 自带的图表组件进行绘制. 优点: 默认的效果不错, 动态效果实现起来也很简单 缺点: 一般只用于本地客户端上的显示
    使用 BufferedImage和Graphics 类来绘制 一个图片, 优点: 自定义程度高, 可以充分发挥想象,绘制一个拉风的效果. 缺点: 有点麻烦.代码有点长了.[一般只用于验证码等小图片的绘制]
JFreeChart 效果图

JavaFX 效果图( 里面的数据是随即生成的,只是为了测试效果)


JavaFX饼状图的参考代码 ,我写了很多的注释
import javafx.animation.*;
import javafx.application.Application;
import javafx.collections.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Side;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.chart.PieChart.Data;
import javafx.scene.control.*;
import javafx.scene.effect.DropShadow;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Duration;
//
public class A03_PieChart03 extends Application {
public static void main(String[] args) {
launch(args);//启动程序
}

@Override
public void start(Stage primaryStage) throws Exception {
StackPane root = new StackPane();// 栈布局面板
Scene scene = new Scene(root, 500, 400);//场景

PieChart pc = new PieChart();//饼状图
ObservableList datas = getDate();
pc.setData(datas);//设置饼状图的初始数据
pc.setTitle("流行技术市场占有率");// 设置饼图标题
pc.setLegendSide(Side.LEFT);// 图例 靠左
pc.setClockwise(false);// 逆时针显示
//pc.setLabelsVisible(false);// 隐藏饼状图上面的文字描述
DropShadow ds=new DropShadow(); // 阴影效果
ds.setOffsetX(3);//x轴偏移3
ds.setColor(Color.GREY);//阴影颜色
pc.setEffect(ds);//给饼状图设置阴影效果

root.getChildren().add(pc);//把饼状图添加到面板上
primaryStage.setTitle("动态饼状图");//设置标题
primaryStage.setScene(scene);//设置主场景
primaryStage.show();//显示窗口


// -------如果需要动态效果 , 那么就需要下面的代码---------
Timeline tl = new Timeline(); //时间轴动画
tl.getKeyFrames().add(new KeyFrame(Duration.millis(800), new EventHandler() {
@Override
public void handle(ActionEvent event) {
for (Data data : pc.getData()) {
data.setPieValue(Math.random()*50);//数据随即改变.(只是为了测试效果)
}
}}));
tl.setCycleCount(Animation.INDEFINITE);//循环次数无限
tl.play(); // 开始动画

}

// 初始的数据
private ObservableList getDate() {
ObservableList data = FXCollections.observableArrayList(new PieChart.Data("Java", 36.8),
new PieChart.Data("C++", 16.2), new PieChart.Data("Python", 12.3), new PieChart.Data("Ruby", 9.5),
new PieChart.Data("JavaScript", 21.5));
return data;

}

}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
第一张里的c户型是我房子的施工图 对比我拍的
我在有利普惠贷了5万怎么会变成7万多
株州芦松属那个派出所
在重庆年薪十万多,算高吗
钢筋延伸率怎么修约
大家都很忙,就我特别闲,怎么办
幻想三国志2天若宫用纸鹤怎么去浮月竹林?
小滨汽配维修中心地址好找么,我有些事要过去
有角色名为小小的电视剧
现在什么做鱼的快餐项目好
怀孕期间一整个晚上不睡觉对宝宝是不是不好
我们上英语,语文,数学,体育,等等译英文
大家帮忙翻译一下吧,谢啦 英语翻译 通知:本
骑马与砍杀战团找老婆找什么样子的好?是背景
谁知道这个玩具怎么玩? 特征:一个圈,套脚上,
推荐资讯
950除以4=多少用分拆计算的方法?
dnf魔皇闪电九属强低
初一数学夺冠计划68面到69面答案。
皱形近字组词
要去阳江旅游了,可不可以推荐几个必去
黄冈大试卷的听力部分那有下载?
以前是两面狂3,现在反手换成了涩套焦点3 请
中考满分作文好段
实况足球2011经典球员问题
茄科蔬菜的分枝习性
打一字,一个猪糟两头空,六个猪儿两边崩,问
我准备了1000个LED灯黄、白、红、绿、紫、蓝
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?