Python matplotlib模块,是扩展的MATLAB的一个绘图工具库,它可以绘制各种图形

建议安装 Anaconda后使用 ,集成了很多第三库,基本满足大家的需求,下载地址,对应选择python 2.7 或是 3.5 的就可以了:
https://www.continuum.io/downloads#windows

脚本默认执行方式:
             1.获取当前文件夹下的1.log文件
             2.将数据格式化为矩阵
             3.以矩阵的列索引为x坐标,行索引为y坐标,值为z坐标
             4.绘制曲面图
测试数据
测试所用数据:
 
r_gain=
79.000000f,  89.000000f, 104.000000f, 120.000000f, 135.000000f,
149.000000f, 160.000000f, 172.000000f, 176.000000f, 172.000000f,
164.000000f, 159.000000f, 143.000000f, 128.000000f, 113.000000f, 
97.000000f,  81.000000f,
r_gain=
84.000000f, 100.000000f, 120.000000f, 136.000000f, 156.000000f,
176.000000f, 192.000000f, 204.000000f, 208.000000f, 204.000000f,
196.000000f, 180.000000f, 164.000000f, 144.000000f, 124.000000f,
108.000000f,  92.000000f,
r_gain=
91.000000f, 112.000000f, 132.000000f, 156.000000f, 176.000000f,
200.000000f, 224.000000f, 240.000000f, 248.000000f, 244.000000f,
228.000000f, 208.000000f, 188.000000f, 164.000000f, 140.000000f,
120.000000f,  99.000000f,
r_gain=
99.000000f, 120.000000f, 144.000000f, 172.000000f, 200.000000f,
228.000000f, 256.000000f, 276.000000f, 284.000000f, 280.000000f,
264.000000f, 240.000000f, 208.000000f, 180.000000f, 156.000000f,
132.000000f, 105.000000f,
r_gain=107.000000f,
128.000000f, 156.000000f, 184.000000f, 216.000000f, 256.000000f,
288.000000f, 308.000000f, 320.000000f, 316.000000f, 296.000000f,
264.000000f, 228.000000f, 196.000000f, 164.000000f, 140.000000f,
113.000000f,
r_gain=111.000000f,
132.000000f, 160.000000f, 192.000000f, 232.000000f, 272.000000f,
304.000000f, 332.000000f, 340.000000f, 336.000000f, 316.000000f,
284.000000f, 244.000000f, 204.000000f, 172.000000f, 144.000000f,
117.000000f,
r_gain=109.000000f,
136.000000f, 164.000000f, 196.000000f, 232.000000f, 276.000000f,
312.000000f, 336.000000f, 348.000000f, 344.000000f, 320.000000f,
288.000000f, 248.000000f, 208.000000f, 172.000000f, 144.000000f,
117.000000f,
r_gain=111.000000f,
132.000000f, 160.000000f, 192.000000f, 228.000000f, 268.000000f,
304.000000f, 328.000000f, 340.000000f, 332.000000f, 312.000000f,
280.000000f, 240.000000f, 200.000000f, 168.000000f, 140.000000f,
119.000000f,
r_gain=101.000000f,
128.000000f, 152.000000f, 180.000000f, 212.000000f, 248.000000f,
280.000000f, 304.000000f, 312.000000f, 308.000000f, 288.000000f,
260.000000f, 224.000000f, 192.000000f, 160.000000f, 136.000000f,
109.000000f,
r_gain=
95.000000f, 116.000000f, 140.000000f, 164.000000f, 192.000000f,
224.000000f, 248.000000f, 272.000000f, 280.000000f, 272.000000f,
256.000000f, 232.000000f, 200.000000f, 176.000000f, 152.000000f,
128.000000f, 101.000000f,
r_gain=
87.000000f, 108.000000f, 128.000000f, 148.000000f, 172.000000f,
192.000000f, 216.000000f, 232.000000f, 236.000000f, 232.000000f,
220.000000f, 200.000000f, 180.000000f, 156.000000f, 136.000000f,
116.000000f,  95.000000f,
r_gain=
80.000000f,  96.000000f, 112.000000f, 132.000000f, 148.000000f,
168.000000f, 180.000000f, 192.000000f, 196.000000f, 196.000000f,
184.000000f, 172.000000f, 156.000000f, 136.000000f, 120.000000f,
104.000000f,  88.000000f,
r_gain=
69.000000f,  85.000000f,  96.000000f, 111.000000f, 127.000000f,
141.000000f, 153.000000f, 160.000000f, 164.000000f, 159.000000f,
157.000000f, 145.000000f, 135.000000f, 120.000000f, 104.000000f, 
88.000000f,  77.000000f,

曲面图脚本
# -*- coding: utf-8 -*-
 
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from pandas import DataFrame
 
 
def draw(x, y, z):
    '''
    采用matplolib绘制曲面图
    :param x: x轴坐标数组
    :param y: y轴坐标数组
    :param z: z轴坐标数组
    :return:
    '''
    X = x
    Y = y
    Z = z
 
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    ax.plot_trisurf(X, Y, Z)
    plt.show()
 
if __name__ == '__main__':
    '''
       默认执行方式:
             1.获取当前文件夹下的1.log文件
             2.将数据格式化为矩阵
             3.以矩阵的列索引为x坐标,行索引为y坐标,值为z坐标
             4.绘制曲面图
    '''
    data = {}
    index_origin = 0
    f = open("1.log")
    line = f.readline()
    while line:
        data[index_origin] = line.split('=')[-1].replace(' ', '').split('f,')[0:-1]
        index_origin = index_origin + 1
        line = f.readline()
    f.close()
    df = DataFrame(data)
    df = df.T
 
    x = []
    for i in range(len(df.index)):
        x = x + list(df.columns)
    print(x)
 
    y = []
    for i in range(len(df.index)):
        for m in range(17):
            y.append(i)
    print(y)
 
    z = []
    for i in range(len(df.index)):
        z = z + df[i:i + 1].values.tolist()[0]
    z = map(float, z)
    print (z)
    draw(x, y, z)

【python】pandas & matplotlib 数据处理 绘制曲面图的更多相关文章

  1. python的matplotlib.pyplot绘制甘特图

    博主本来就想简单地找一下代码,画一幅甘特图,结果百度之后发现甘特图的代码基本都不是用matplotlib库,但是像柱状图等统计图通常都是用这个库进行绘制的,所以博主就花了一些时间,自己敲了一份代码,简 ...

  2. python中matplotlib所绘制的图包含了很多的对象

    上图中的top=‘off’意思是说顶部的grid lines 看不见. 去除frame,意思就是将这个矩形给去除掉,spine意思是脊柱 bars = plt.bar(pos, popularity, ...

  3. Python使用matplotlib模块绘制多条折线图、散点图

    用matplotlib模块 #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:折线图.散点图测试 ''' import rando ...

  4. python 运用numpy库与matplotlib库绘制数据图

    代码一 import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,6,100) y=np.cos(2*np.pi*x)*np ...

  5. Python数据分析-Matplotlib图标绘制

    Matplotlib介绍 Matplotlib是一个强大的Python绘图和数据可视化的工具包. Matplotlib的主要功能 Matplotlib是python中的一个包,主要用于绘制2D图形(当 ...

  6. python使用matplotlib:subplot绘制多个子图

    1 问题描述 matploglib 能够绘制出精美的图表, 有些时候, 我们希望把一组图放在一起进行比较, 有没有什么好的方法呢? matplotlib 中提供的 subplot 可以很好的解决这个问 ...

  7. Python Pandas 时间序列双轴折线图

    时间序列pv-gmv双轴折线图 import numpy as np import pandas as pd import matplotlib.pyplot as plt n = 12 date_s ...

  8. 使用matplotlib库绘制函数图

    函数如下: z = x^2 * y / (x^4 +y^2) 代码如下: import numpy as np import matplotlib.pyplot as plt import mpl_t ...

  9. Python——Pandas 时间序列数据处理

    介绍 Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取.转换.过滤.分析等一系列操作.同样,Pandas 已经被证明为是非常强大的用于处理时间序列数据的工具.本节将介绍 ...

随机推荐

  1. iptables原理详解(一)

    iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火 ...

  2. 如何在MainWindowViewModel中引用MainWindow.xaml中的Resource?

    问题描述:在MainWindow.xaml的Window.Resource中定义了一个资源,如下: <xctk:Wizard x:Key="_wizard" FinishBu ...

  3. dedecms购物车商品添加删除数量改变方式变成ajax

    简单的做了一下修改,模板用的它默认的模板,感觉之前全是表单提交很不爽用的 修改的相关文件:/plus/posttocar.php, /plus/car.php,/templets/plus/car.h ...

  4. 初识reactJs 相关

           喽了一眼阮一峰老师的react文章,感觉写的挺棒,这篇只是按照自己思路屡一遍,纯属自学笔记,不承担社会暴乱责任.前几天,打算学vuejs,师兄给了一句话的点播,感觉很醍醐灌顶.总结下,所 ...

  5. PHP面试题之驼峰字符串转换成下划线样式例子

    自己在看到这个问题的时候,想到的是用ASCII码来处理,没往万能的正则上去想.好吧,下面来看看答案: 答案1: 代码如下 复制代码 $str = 'OpenAPI'; $length = mb_str ...

  6. [SHELL]判断一个命令是否存在

    首先要说明的是,不要使用which来进行判断,理由如下: 1.which非SHELL的内置命令,用起来比内置命令的开销大,并且非内置命令会依赖平台的实现,不同平台的实现可能不同. # type typ ...

  7. (转)jQuery插件 -- Form表单插件jquery.form.js

    beforeSubmit: validate function validate(formData, jqForm, options) { //在这里对表单进行验证,如果不符合规则,将返回false来 ...

  8. ThinkPHP学习遇到的点问题(学习中,持续更新)

    1.__ROOT__变量没有值的问题 今天遇到这个比较变态的问题,可能是我技术比较菜吧,搞了一个多小时,最后发现问题可能出现在 入口文件中定义的APP_NAME的名字和项目的跟目录名称相同了,比如我网 ...

  9. 长时间停留在calculating requirements and dependencies 的解决方案

    如果Eclipse花费了很长的时间calculating requirements and dependencies(计算需求和依赖性 ) 这个问题通常就是在点击安装之后显示“Calculating ...

  10. C#的New关键字的几种用法

    一.在C#中,new这个关键字使用频率非常高,主要有3个功能: a)     作为运算符用来创建一个对象和调用构造函数. b)     作为修饰符. c)      用于在泛型声明中约束可能用作类型参 ...