从复杂的txt数据中提取Python折线图
我有一个文本文件,格式如下: 时间,秒A区,厘米A区,A区B区,厘米B区,A区PiA,锰/米S.槽,中压深度,毫米T.A.,厘米从复杂的txt数据中提取Python折线图,python,charts,Python,Charts,我有一个文本文件,格式如下: 时间,秒A区,厘米A区,A区B区,厘米B区,A区PiA,锰/米S.槽,中压深度,毫米T.A.,厘米 1.103000 342.385783 44.343862-0.278713 NaN 0.060977-2.867612 5.000000 233000 342.357189 44.340159-0.278713 NaN 0.069688-5.336944 5.000000 3.356000 342.128434 44.310532-0.202736 NaN 0.08
1.103000 342.385783 44.343862-0.278713 NaN 0.060977-2.867612 5.000000
233000 342.357189 44.340159-0.278713 NaN 0.069688-5.336944 5.000000
3.356000 342.128434 44.310532-0.202736 NaN 0.087109-8.045245.000000
4.488000 341.999759 44.293867-0.202736 NaN 0.093643 0.318624 5.000000 我想为
x
data-AreA,cm
和y
data-PiA,mN/m
创建一个线性图
不幸的是,我不能跳过第一行,数据将无法正确加载
我在试这个:
import numpy as np
import matplotlib.pyplot as plt
with open('v10.txt') as f:
data = np.loadtxt(f, delimiter="\t", dtype='float',skiprows=0,)
x = data[:, 1]
y = data[:, 5]
fig = plt.figure()
fig.suptitle('')
plt.xlabel('')
plt.ylabel('')
plt.plot(-x, -y, c='r', label='')
leg = plt.legend()
plt.show()
谁都知道怎么做
提前谢谢你 下面是一个使用您提供的数据的解决方案。访问文件内容时,只需跳过文件中的第一行即可
import numpy as np
import matplotlib.pyplot as plt
with open("file.txt") as f:
lines = f.readlines()
x = [float(line.split()[1]) for line in lines[1:]] # [1:] skips the first line
y = [float(line.split()[4]) for line in lines[1:]]
xmesh = np.linspace(min(x), max(x), 100) # Create a fine x mesh for fitting
fit = np.poly1d(np.polyfit(x,y,1)) # Making a linear fit
plt.plot(x, y, 'bo', label='Actual data') # Plotting actual data
plt.plot(xmesh, fit(xmesh), '-b', label='Linear fit') # Plotting fit
plt.xlabel('Area (cm)')
plt.ylabel('Pi A (mN/m)')
plt.legend()
输出
使用pandas的解决方案(您可以使用$pip install pandas安装该解决方案
)
能否显示用于读取和打印此数据的代码?如果您可以创建一个import numpy作为np import matplotlib.pyplot作为plt,open('v10.txt')作为f:data=np.loadtxt(f,delimiter=“\t”,dtype='float',skiprows=0,)x=data[:,1]y=data[:,5]fig=plt.figure()fig.suptitle('')plt.xlabel('')plt.ylabel('')plt.plt(-x,-y,c='r',label='')leg=plt.legend()plt.show()你应该用代码编辑你的问题,不要在评论中发表你用我下面的解决方案编辑了你的问题:)Smart我很抱歉,很多问题都有各种解决方案。第一次接触python,我迫切需要它来完成我的硕士论文。我在图表上没有看到任何数据尝试这样做:(你是否创建了一个名为
file.txt
的文件,并将数据的前4行放在该文件中?
import pandas as pd
import matplotlib.pyplot as plt
filepath = 'path/to/file.txt'
df = pd.read_csv(filepath, sep=r'\s+')
area_key = 'AreaA,cm˛' # watch out for unicode '˛'
pi_key = 'PiA,mN/m'
ax = df.plot(area_key, pi_key, 'scatter', label='data') # can pass any plt kwargs here
x = df[area_key]
y = df[pi_key]
xmesh = np.linspace(min(x), max(x), 100) # Create a fine x mesh for fitting
fit = np.poly1d(np.polyfit(x,y,1)) # Making a linear fit
# cam override x/y labels titles here
ax.plot(xmesh, fit(xmesh), label='linear fit')
ax.legend()
plt.show()