2 回答

TA贡献1859条经验 获得超6个赞
我希望这是你想要的。
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 网站。
希望这可以帮助。

TA贡献1824条经验 获得超5个赞
替代,我使用的方法,但蒂姆的回答仍然准确。由于时间码不是日期/时间信息,我修改了自己的代码以添加标签作为第二列,我称之为“p”(它们是聚合物)。
import numpy as np
import pandas as pd
datain = np.loadtxt('somefile.txt')
df = pd.DataFrame(data = datain, columns = ["t","p","x","y","z"])
ax = sns.scatterplot("t","x", data = df, hue = "p")
plt.show()
当然,如果需要,可以类似地绘制其他列。
添加回答
举报