jzy3D从入门到弃坑_3使用jzy3D0.9画2D散点图--多条线条

jzy3D从入门到弃坑_3

使用jzy3D0.9画2D散点图--多条线条

觉得有用的话,欢迎一起讨论相互学习~Follow Me

主要思路

  • 将多个线条的二维数组读入Scatter对象
  • 存入到同一个画布中

    存入多个Scatter对象中

package momfo.metaheuristics.momfea;

import momfo.core.SolutionSet;
import org.jzy3d.chart.Chart;
import org.jzy3d.chart.ChartLauncher;
import org.jzy3d.colors.Color;
import org.jzy3d.global.Settings;
import org.jzy3d.maths.Coord3d;
import org.jzy3d.plot3d.primitives.Scatter;
import org.jzy3d.plot3d.rendering.canvas.Quality;
import org.jzy3d.chart.Chart;

import java.awt.*;

public class PlotTwoD_alpha {
    //如果要在一张图中添加多个点,我们采用首先取点,然后生成颜色的方式
    public Scatter Setpoint(double[][] maxtrix, float[] rgb, float alpha, float width) {
        Coord3d[] POINTS;
        Color[] COLORS;
        int size = maxtrix.length;//size
        int numobj = maxtrix[0].length;//2
        float x;
        float y;
        float z;
        POINTS = new Coord3d[size];
        COLORS = new Color[size];
        for (int i = 0; i < size; i++) {
            x = 0;
            y = (float) maxtrix[i][0];
            z = (float) maxtrix[i][1];
            POINTS[i] = new Coord3d(x, y, z);
            COLORS[i] = new Color(rgb[0], rgb[1], rgb[2], alpha);//表示RGB值和透明度
        }
        Scatter scatter = new Scatter(POINTS, COLORS, width);//width 表示线条宽度
        return scatter;
    }
}

在同一画布中将多个Scatter表示出来

package momfo.metaheuristics.momfea;

import java.awt.*;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.HashMap;

import momfo.core.*;
import momfo.util.comparators.LocationComparator;

import momfo.operators.crossover.CrossoverFactory;
import momfo.operators.mutation.MutationFactory;
import momfo.operators.selection.SelectionFactory;
import momfo.problems.benchmarks.*;
import momfo.qualityIndicator.QualityIndicator;
import momfo.util.JMException;
import org.jzy3d.chart.Chart;
import org.jzy3d.chart.ChartLauncher;
import org.jzy3d.global.Settings;
import org.jzy3d.plot3d.primitives.Scatter;
import org.jzy3d.plot3d.rendering.canvas.Quality;

public class ReadPrintPF {
    public static void main(String args[]) throws IOException, JMException, ClassNotFoundException {
        ProblemSet problemSet; // The problem to solve
        momfo.qualityIndicator.util.MetricsUtil utils_;
        SolutionSet TruePFT1;
        SolutionSet TruePFT2;

        problemSet = CIHS.getProblem();
        String pf1 = "PF/" + problemSet.get(0).getHType() + ".pf";
        String pf2 = "PF/" + problemSet.get(1).getHType() + ".pf";
        utils_ = new momfo.qualityIndicator.util.MetricsUtil();
        // 返回的是一个solutionSet变量
        //使用这种方式读取的SolutionSet没有决策变量
        TruePFT1 = utils_.readNonDominatedSolutionSet(pf1);
        TruePFT2 = utils_.readNonDominatedSolutionSet(pf2);
//        TruePFT1.printObjectivesToFile("./src/main/java/momfo/metaheuristics/momfea/" + "CIHS" + "T1" + ".txt");
        //并且可以发现目标函数值都是double类型的浮点数类型
//        TruePFT1.printObjectives();
        ReadPrintPFTools tools = new ReadPrintPFTools();
        double[][] TruePFT1_Matrix = tools.writeObjectivesToMatrix(TruePFT1);
        double[][] TruePFT2_Matrix = tools.writeObjectivesToMatrix(TruePFT2);
        float[] rgb1 = {0, 0, 0};//黑色
        float[] rgb2 = {(float) 0.5, (float) 0.5, (float) 0.5};//灰色
        float alpha = (float) 0.5;

        PlotTwoD_alpha pttwoD = new PlotTwoD_alpha();
        Scatter scatter1 = pttwoD.Setpoint(TruePFT1_Matrix, rgb1, alpha, 5);
        Scatter scatter2 = pttwoD.Setpoint(TruePFT2_Matrix, rgb2, alpha, 5);
        Chart chart = new Chart(Quality.Advanced, "awt");
        // add scatters
        chart.getScene().add(scatter1);
        chart.getScene().add(scatter2);
        Settings.getInstance().setHardwareAccelerated(true);
        //open chart
        ChartLauncher.openChart(chart, new Rectangle(0, 0, 600, 600), "CIHS");
    }

}

结果

原文地址:https://www.cnblogs.com/cloud-ken/p/12034479.html

时间: 2024-08-29 09:33:00

jzy3D从入门到弃坑_3使用jzy3D0.9画2D散点图--多条线条的相关文章

Docker 从入门到弃坑

清理低版本 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine sudo yum install -y yum-utils device-mapper-persistent-data lvm2 安装docker sudo yum install docker-ce su

弃坑而逃——

好吧,眼看就是生地中考了.. 趁端午,恶补了一下OI,无奈,只能弃坑一段时间啦 希望生地中考和期末不留遗憾把! 23:06 5/29/2017

弃坑pexpect,入坑paramiko

弃坑pexpect,入坑paramiko 上文书说到,ssh库pexpect的使用,简直就是个"月亮公主"--满眼全是坑.勉强把程序写好了,跑起来的时候发现了一个新坑,让我不可抗拒的把它弃掉了--经常莫名其妙的连不上服务器!开线程连接14台服务器,总有1到3台连不上,还查不到原因.这还了得!一怒之下把写好的pexpect封装库删掉了,用paramiko重新写起.其实这个库也是有一些坑的,这个放在后面说.先介绍一下这个库的用法. 安装方法:没有什么新鲜的 pip install para

gulp-htmlone的BUG弃坑

之前用项目用gulp-htmlone做最后的js和css内联打包出现各种问题 这次居然遇到打包后的css斜杠变反斜杠的问题 如下:/src/common/images/i_banner.jpg会被改成\src\common\images\i_banner.jpg 实在无法忍耐去改他的源码,改了后其他伙伴也要改,所以果断弃坑 在网上找了gulp-inline进行替代 gulp.task('inline', function() { gulp.src(['./pages/**/*.html']) .

阿里分布式事务seata入门(采坑)

1. 阿里分布式事务seata入门(采坑) 1.1. 前言 seata是feascar改名而来,这是阿里在19年年初开源出来的分布式事务框架,当初刚出来的时候就想研究下了,一直拖到了现在,目前是0.8.0版本,看版本就知道这还是个比较新的项目,但现在已经有上万个Star了,可见阿里的影响力.但是虽然有阿里背书,该挖坑还得挖,它宣称集成它比较简单,导致的是现在它的文档优点残缺不全,好几个文档标题点进去都没内容,不知道为什么删了,可能是更新比较快,文档跟不上节奏索性删了[手动滑稽] 1.2. 快速开

【进行中,随时弃坑】简易JVM的C++实现

源码地址:https://pan.baidu.com/s/1Jj1H5uL3RLDzZARxFD0Bfw 提取码:68x7 2019.07.04更新 一.想法: 暑假闲着也是闲着,不如做一些有趣的事情,所以我决定做一个简易的java虚拟机.其实真的是心血来潮,因为几天前我在找关于java虚拟机学习资料的时候无意间发现了一本书——<自己动手写java虚拟机>.哇,手写jvm,这也太酷了吧(划重点)!于是我决定开坑也写一个jvm.当然要求不高,能打出Hello World,进行简单的累加运算,我就

网易云课堂_C++程序设计入门(上)_第2单元:丹青画松石– EGE图形库_第2节:一个简单的EGE程序

网易云课堂_C++程序设计入门(上)_第2单元:丹青画松石– EGE图形库_第2节:一个简单的EGE程序 #ifndef _GRAPHICS_H_ #define _GRAPHICS_H_ #ifndef __cplusplus #error You must use C++ compiler, or you need filename with '.cpp' suffix #endif #include "ege.h" using namespace ege; #endif #inc

深度学习入门(占坑)

摘要 最近在学习 ng 的神经网络入门.先记录一笔,一些概念 CNN( conventional Neual Network) 卷积神经网络 RNN(Recurrent neural network) 递归神经网络 误差函数 logistic regression 求导 正向传播.反向传播 单层神经网络 双层神经网络 多层神经网络 原文地址:https://www.cnblogs.com/huxiaoyun90/p/8717420.html

redis从入门到踩坑

背景 Redis在互联网项目的使用也是非常普遍的,作为最常用的NO-SQL数据库,对Redis的了解已经成为了后端开发的必备技能.小编对Redis的使用时间不长,但是项目中确两次踩中了Redis的坑,今天特意从基础知识层面到实战层面对Redis知识进行梳理,能够达到对Redis的知识体系有更全面和深入的理解. Redis的特点 优点: Key-Value类型的内存数据库,是加强版的Memcached. 整个数据库都是在内存中进行操作的,并且定期异步持久化数据到硬盘上进行保存. 在内存中进行操作,