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原生画图工具显示的图形
  • 相关阅读:
    485串口接线
    mvc3 升级mvc5
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6 读写西门子PLC
    可用的 .net core 支持 RSA 私钥加密工具类
    解决 Win7 远程桌面 已停止工作的问题
    解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题
    解决安装 .net framework 发生 extracting files error 问题
    CentOS7 安装配置笔记
    通过特殊处理 Resize 事件解决 WinForm 加载时闪烁问题的一个方法
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/11323955.html
Copyright © 2011-2022 走看看