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原生画图工具显示的图形
  • 相关阅读:
    js全选 反选 不选 代码示例。
    前端超级好用a标签跳转带锚点效果
    10分钟倒计时简易
    点赞投票+1简单jq代码
    登录注册密码可见与不可见jquery简易效果开发
    JS调用函数内部变量有以下两种方法:
    关于clipboard.js复制图片以及文本的随笔
    这是我的第一个博客,我叫小白菜!
    前端之路(一)之W3C是什么?
    知识普及
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/11323955.html
Copyright © 2011-2022 走看看