python - 具有来自 numpy 的特定 x 值的 Python 绘图线
问题描述
我有一堆数据文件的情况,这些数据文件在给定的时间范围内有许多样本,具体取决于系统。即例如在时间 t=1 时,我可能有一个包含 10 项或 20 项的文件,稍后在该文件中我将始终拥有相同数量的项目。格式为时间、x、y、z 列,并加载到 numpy 数组中。时间值显示哪一帧,但如前所述,总是相同的,让我们以 10 作为示例。所以我会有一个 (10,4) numpy 数组,其中时间值是相同的,但是文件中有很多帧,所以可以说 100 帧,所以我真的有 (1000,4)。我想在 x 轴上随时间绘制数据,并在 y 上对其他数据进行操作,但我不确定如何使用 matplotlib 中的线图方法来做到这一点。通常要同时提供 x,y 值我相信我需要做一个散点图,所以我希望有更好的方法来做到这一点。我理想中想要的是将具有相同时间码的每一行视为不同的系列(因此颜色会有所不同),并且下一帧中相同行号的下一位数据(时间值)将被标记为相同的颜色,给出那些良好的连续线条。我们可以查看时间列并计算出有多少项目共享一个时间码,我们称之为“n”。示例代码:我们可以查看时间列并计算出有多少项目共享一个时间码,我们称之为“n”。示例代码:我们可以查看时间列并计算出有多少项目共享一个时间码,我们称之为“n”。示例代码:
a = numpy.loadtxt('sampledata.txt')
plt.plot(a[:0,:,n],a[:1,:1])
plt.show()
我认为这段代码表达了我的目标,尽管它不起作用。
解决方案
编辑:我希望这是你想要的。
seaborn scatterplot可以将数据分类到具有相同代码(在本例中为时间代码)的某些组中,并对它们使用相同的颜色。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv(r"E:\Programming\Python\Matplotlib\timecodes.csv",
names=["time","x","y","z","code"]) #use your file
df["time"]=pd.to_datetime(df["time"]) #recognize the data as Time
df["x"]=df["time"].dt.day # I changed the data into "Date only" and imported to x column. Easier to see on graph.
#just used random numbers in y and z in my data.
sns.scatterplot("x", "y", data = df, hue = "code") #hue does the grouping
plt.show()
我在这里使用了 csv 文件,但您也可以通过添加sep="\t"
参数来处理您的文本文件。我还在文件中添加了一个代码。如果你有它,代码可以对图中的数据进行分组,因此你不必分离或制作分层索引。如果您想更改颜色或分组,请参阅 seaborn 网站。
希望这可以帮助。
推荐阅读
- css - 如何在不使用 z-index 的情况下隐藏另一个项目下的项目
- laravel - 类 Database\Seeds\PermissionsTableSeeder 不存在
- php - 如何从 laravel 5 中的两个相关表中获取数据
- c# - 找不到注册视图模型
- node.js - 节点usb,没有收到数据
- intellij-idea - 如何在 IntelliJ 中重命名我的整个项目而无需太多手动步骤?
- django - RUN pip install -r requirements.txt 不会在 docker 容器中安装要求
- python - 如何修复此代码的“无效语法”错误
- cmake - 共享对象库未列出特定的共享对象依赖项
- docker - 即使完全停止 Docker 服务,Docker 容器仍在运行