zoukankan      html  css  js  c++  java
  • 用python画 pareto front

    用python画 pareto front

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

    2D pf

    import os
    import matplotlib.pyplot as plt
    import numpy as np
    
    
    def Read_Files(filename):
        X_axis = []  # X
        Y_axis = []  # Y
        with open(filename, 'r') as f:
            for line in f.readlines():
                x = line.split(" ")[0]
                y = line.split(" ")[1]
                X_axis.append(float(x))
                Y_axis.append(float(y))
        f.close()
        return X_axis, Y_axis
    
    def plot_PF(X_axis, Y_axis):
        # 可以通过c 参数设置颜色
        # T = np.arctan2(Y_axis, X_axis)
        # plt.scatter(X_axis, Y_axis, s=2, c=T, alpha=0.5)
        plt.scatter(X_axis, Y_axis, s=20, alpha=0.5)
        plt.savefig(Figname + '.png', dpi=600)
        plt.show()
    
    
    Filename = './data/CIHS1_hType_circle.pf'
    Figname='CIHS1_hType_circle'
    X_axis, Y_axis = Read_Files(Filename)
    T = np.arctan2(Y_axis, X_axis)
    plot_PF(X_axis, Y_axis)
    
    

    3D pf

    import os
    import matplotlib.pyplot as plt
    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D
    
    
    def Read_Files(filename):
        X_axis = []  # X
        Y_axis = []  # Y
        Z_axis = []  # Z
        with open(filename, 'r') as f:
            for line in f.readlines():
                # print(line)
                x = line.split("	")[0]  # 注意,这里不是使用空格,而是使用Tab制表符进行分割
                # print(x)
                y = line.split("	")[1]
                # print(y)
                z = line.split("	")[2]
                # print(z)
                X_axis.append(float(x))
                Y_axis.append(float(y))
                Z_axis.append(float(z))
        f.close()
        return X_axis, Y_axis, Z_axis
    
    
    def plot_PF(X_axis, Y_axis, Z_axis):
    
        ax = plt.figure().add_subplot(111, projection='3d')
        # c 设置颜色,alpha设置透明度,s设置点的大小
        ax.scatter(X_axis, Y_axis, Z_axis, c='b', alpha=0.5, s=3)
    
        plt.savefig(Figname + '.png', dpi=600)
        plt.show()
    
    
    Filename = './data/hType_sphere.pf'
    Figname = 'hType_sphere'
    X_axis, Y_axis, Z_axis = Read_Files(Filename)
    plot_PF(X_axis, Y_axis, Z_axis)
    
    

    Note

    • 如果使用Pycharm的图片展示,则画出来的3D图形是不能够旋转的,此时必须关闭pycharm的"Show plots in tool windows"

    https://blog.csdn.net/u013555719/article/details/83896790

    • 以下是使用pycharm画出的图形
    1. “File—>Settings”,打开Settings窗口。
    2. 找到“Python Scientific”,去除右边候选框中的勾号。
    • 用上述步骤后使用python原生画图工具显示的图形
  • 相关阅读:
    奥展项目笔记12-批量下载文件
    深度学习笔记03-梯度下降和方向传播
    深度学习笔记02-高效计算基础(python)
    深度学习笔记01-数学基础
    解决Android Studio卡在Gradle:Resolve dependecies 'app:_debugCompile'问题
    Oracle DB , 计算各个用户/schema 的磁盘占用空间
    转载:删除github上文件夹的两种方式
    Win7无法保存共享帐户密码
    怎么做网线,网线水晶头接法和线序
    QQ Protect 的删除
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/11323955.html
Copyright © 2011-2022 走看看