python - 如何访问多个拆分数组进行绘图?
问题描述
所以我从一大块数据开始:许多列、数千行、100 个单独的测量值。我将数据放在一个数组中,然后使用 split_array 将一个巨大的数组拆分为 100 个不同的测量值。现在我需要在同一个图上绘制所有 100 个测量值。我的问题是我不确定如何访问拆分的数组。拆分后的数组如下所示:
[array([[21.4284003, 0, 1, 4.0482, 92.2, 230.6, 0, 0, ' NaN '],
[21.4364002, 0, 1, 3.9745, 91.8, 240.9, 0, 0, ' NaN '],
...
[21.4704002, 0, 1, 3.8645, 91.8, 240.9, 0, 0, ' NaN ']], dtype=object),
array([[22.4958395, 1, 1, 4.5837, 90.2, 285.9, 0, 0, ' NaN '], so on]
我只对绘制每个数组的第一列和第四列感兴趣,我使用了一些基本的绘图代码,如下所示。
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
time = split_array[:,0]
conductance = split_array[:,3]
ax.line(time, conductance)
plt.show()
当我运行它时,我收到错误消息“列表索引必须是整数或切片,而不是元组”,错误指向第 3 行。我的猜测是每个数组都被存储为一个元组,而 split_array[:,0]指的是第一个数组,而不是每个数组中的第一列。我无法找到有关绘制拆分数组的太多信息,因此不胜感激。
解决方案
目前尚不完全清楚您要做什么,但如果您的数据是这样的数组列表:
import numpy as np
from matplotlib import pyplot as plt
data = [np.array([[21.4284003, 0, 1, 4.0482, 92.2, 230.6, 0, 0, ' NaN '],
[21.4364002, 0, 1, 3.9745, 91.8, 240.9, 0, 0, ' NaN '],
[21.4704002, 0, 1, 3.8645, 91.8, 240.9, 0, 0, ' NaN ']], dtype=object),
np.array([[22.4958395, 1, 1, 4.5837, 90.2, 285.9, 0, 0, ' NaN '],
[22.5958395, 1, 1, 4.7837, 90.2, 285.9, 0, 0, ' NaN '],
[22.6958395, 1, 1, 4.9837, 90.2, 285.9, 0, 0, ' NaN ']], dtype=object)
]
您需要遍历列表并绘制套件中的每个单独数组:
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
for a in data:
time = a[:,0]
conductance = a[:,3]
ax.plot(time, conductance)
plt.show()
推荐阅读
- grails - 如何更改 Grails spring-security-ldap:2.0.1 插件以使用自定义的 AuthoritiesPopulator?
- angularjs - ng-options 不显示或链接对象
- plotly - Plotly.js:锁定 y 轴以避免负值
- python - 子数据帧的子数据帧
- jquery - Wicket 6 - 自定义 JQuery 插件导致 StalePageException
- linux - 如何在linux中安装旧版本的dotnet版本
- docker - 每个容器启动多少小时
- ios - 在 SWIFT 中关闭 Popover 表视图后传递值
- python - 使用python 3连接hive
- xslt - 如何将 id 动态分配给我的 for 循环内的 xsl fo 块?