python - python中带有Z轴数据的二维图
问题描述
我想从这个数据(文件)中绘制:
# file name: c7.csv
...
...
...
Scan Start
2d statistical,-32,-24,-16,-8,0,8,16,24,32
120,0.254592,0.195414,0.00428721,0.0114557,0.0147995,0.0458237,0.0924488,0.161643,0.286074
112,0.251826,0.141975,3.81476e-07,1.33516e-06,2.67033e-06,0.000362783,0.0192802,0.126411,0.255406
104,0.251825,0.127342,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,8.16358e-05,0.121867,0.251922
96,0.251825,0.125952,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.0998646,0.251903
88,0.251825,0.123279,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.0703892,0.251903
80,0.251825,0.0669492,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.0437135,0.251903
72,0.251825,0.0133867,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.0134152,0.251845
64,0.251847,0.00226196,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.000735103,0.249137
56,0.254034,5.14992e-06,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,5.72213e-07,0.235424
48,0.265368,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.219798
40,0.282969,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.198044
32,0.333191,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.172414
24,0.363716,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.165892
16,0.343822,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.168372
8,0.307494,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.186618
0,0.297795,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.196873
-8,0.283094,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.191286
-16,0.305736,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.174678
-24,0.360888,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.173295
-32,0.347627,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.179868
-40,0.306325,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.189885
-48,0.287914,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.2148
-56,0.259855,1.02998e-05,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.229949
-64,0.252141,0.00180457,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.000303082,0.247241
-72,0.251826,0.0219065,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.0110576,0.251671
-80,0.251825,0.0676513,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.0373565,0.251922
-88,0.251825,0.121092,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.0683341,0.251903
-96,0.251825,0.125971,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.0962393,0.251903
-104,0.251825,0.126107,3.81476e-07,3.81476e-07,3.81476e-07,3.81476e-07,0.000229076,0.114732,0.251941
-112,0.251831,0.131269,2.28885e-06,2.67033e-06,4.63493e-05,0.000350958,0.0314566,0.13105,0.260355
-120,0.269835,0.181753,0.00982261,0.0178109,0.0331482,0.0722836,0.110299,0.175774,0.299987
Scan End
...
...
...
结果应该看起来:
1st,我从 .csv 文件(c7.csv)中读取数据
with open('c7.csv', newline='') as f:
reader = csv.reader(f)
data = list(reader)
2,我从输入数据中找到开始和结束的地方
cnt_start = 0;
while(data[cnt_start][0] != 'Scan Start'):
cnt_start+=1
cnt_end = 0;
while(data[cnt_end][0] != 'Scan End'):
cnt_end+=1
3rd,我从输入数据中的“扫描开始”到“扫描结束”的开始和结束位置抓取数据
vals = []
for i in range(cnt_start +1 , cnt_end):
vals.append(data[i])
并删除 str '2d statistics'
vals[0].pop(0)
4、由于数据是字符串类型,所以我将其转换为浮点类型
for i in vals:
for j in i:
j = float(j)
5、我从以前的数据中提取行比例和列比例
column_vals = []
column_vals = vals.pop(0)
row_vals = []
for i in vals:
row_vals.append(i.pop(0))
最后,我显示绘图所需数据的数据输出
print(column_vals) # x scale
print(row_vals) # y scale
print(vals) # z data
上面的所有代码都在这里 (如果需要的包已经安装,可以执行此代码)
所需数据似乎已准备就绪。
我该如何做下一步(绘制 2D 并添加比例 x_data、y_data)?
解决方案
推荐阅读
- spring - 总是 entityManager = null
- database - 是否可以在 GitHub 上保存像数据库文件一样的 1 Gb 文件?
- rust - 对于具有未实现默认值的字段的结构,是否有一种简短的方法来实现默认值?
- r - 在R中如何计算日期是否早于日期X?
- python - 在使用 Python 从字典列表和相应计数中提取键列表时需要帮助
- node.js - 未捕获的类型错误:fs.existsSync 不是函数
- delphi - 如何在 Delphi FMX 应用程序中克隆 TPanel?
- python - 凸 LP 上的 ADMM 实现,收敛问题
- git - Git推送错误:无法从存储库中读取
- java - Py4JJavaError:调用 o114.json 时出错。: java.lang.OutOfMemoryError: Java 堆空间