用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("\t")[0] # 注意,这里不是使用空格,而是使用Tab制表符进行分割
# print(x)
y = line.split("\t")[1]
# print(y)
z = line.split("\t")[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原生画图工具显示的图形

用python画 pareto front的更多相关文章

  1. 沉淀再出发:用python画各种图表

    沉淀再出发:用python画各种图表 一.前言 最近需要用python来做一些统计和画图,因此做一些笔记. 二.python画各种图表 2.1.使用turtle来画图 import turtle as ...

  2. python画樱花

    用python画简单的樱花 代码如下: import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, t): ...

  3. python 画小猪佩奇

    转自:python画个小猪佩奇 # -*- coding: utf-8 -*- """ Created on Mon May 20 11:36:03 2019 @auth ...

  4. python 画3D的高斯曲线

    用python画3D的高斯曲线,我想如果有多个峰怎么画? import numpy as npimport matplotlib.pyplot as pltimport mathimport mpl_ ...

  5. python画一只佩奇

    用python画一只佩奇 from turtle import* def nose(x,y):#鼻子 penup()#提起笔 goto(x,y)#定位 pendown()#落笔,开始画 sethead ...

  6. 利用python画出动态高优先权优先调度

    之前写过一个文章. 利用python画出SJF调度图 动态高度优先权优先调度 动态优先权调度算法,以就绪队列中各个进程的优先权作为进程调度的依据.各个进程的优先权在创建进程时所赋予,随着进程的推进或其 ...

  7. 【python画圆】pip安装库时出现Read timed out.解决办法

    昨天第一次用python画圆,当时并没有安装numpy库(导入数据包)和matplotlib库(导入图形包),于是尝试用pip安装库 首先,我先更新了pip,如下图: 顺便附上成功截图: 然后安装nu ...

  8. python画柱状图并且输出到html文件

    import matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as pltfrom Cstring import StringIO y ...

  9. python画出心形图

    程序员表达爱的方式真是多种多样.比如,用python来画一个心型,献给梦中的情人,代码如下: from turtle import * pensize(1) pencolor('red') fillc ...

随机推荐

  1. 面向对象的继承和多态(is-a)

    继承的主要作用:我们使用继承主要是为了避免出现重复的定义,程序中如果出现多个地方有相同的定义,可以把相同程序提取出来定义为父类. 子类继承父类使用extends关键字,子类具备父类所有的属性和方法,包 ...

  2. Hbase节点及原理

    1.Hbase架构:Clinet.Zookeeper.Master.RegionServer.Region.Store.MemStore.HLog 1.读过程 2.写过程 https://www.cn ...

  3. 批量下载oracle jdk

    1.打开 https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html 2.同意条款 3. ...

  4. QMutexLocker基于QMutex的便利类

    首先需要注意的是:QMutexLocker这个类是基于QMutex的便利类,这个类不能够定义   私有成员变量  和  全局变量,只能够定义局部变量来使用. 使用方法:(1)先定义一个QMutex类的 ...

  5. 洛谷 P5436 【XR-2】缘分 题解

    P5436 [XR-2]缘分 题目背景 世间万物都置身于缘分编织的大网中.缘分未到,虽历经千劫,却不能相遇.缘分到了,在草原上都能等到一艘船.--<一禅小和尚> 题目描述 一禅希望知道他和 ...

  6. fedora安装设置

    添加视频解码rpmfusion源: sudo rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-st ...

  7. 如何快速把ps序列图层建立帧动画?

    工具ps 1.将序列帧图片载入ps 新建->脚本->将文件载入堆栈 2.制作序列帧动画 窗口->时间轴->时间轴面板右上角菜单->从图层建立帧 3.去除多余的透明画布 全 ...

  8. Pycharm使用技巧:Split Vertically/Horizontally(垂直/水平拆分窗口)

    Split Vertically或者Split Horizontally可以把当前编辑窗口垂直或者水平拆分成两个. 使用: 在编辑窗口中打开你要展示的两个文件(如图中的  "郭靖" ...

  9. 关于Ubuntu中snap安装软件太慢解决办法

    两种方法,一是下载好包手动安装,二设置snap的代理. 下载安装包方式 到 https://uappexplorer.com/snaps 搜索需要的 snap 包,然后下载 下载的时候选择对应的平台. ...

  10. linux如何实现凌晨定时执行脚本?

    Linux中,周期执行的任务一般由cron这个守护进程来处理.cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“crontab”,是“cron table ...