Python matplotlib模塊,是擴展的MATLAB的一個繪圖工具庫,它能夠繪製各類圖形python
建議安裝 Anaconda後使用 ,集成了不少第三庫,基本知足你們的需求,下載地址,對應選擇python 2.7 或是 3.5 的就能夠了:
https://www.continuum.io/downloads#windowsdjango
腳本默認執行方式:
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)
|