Python 通过连接多个文件创建的文本文件的交互式三维散点图

Python 通过连接多个文件创建的文本文件的交互式三维散点图,python,pandas,text-files,plotly,scatter3d,Python,Pandas,Text Files,Plotly,Scatter3d,我在一个目录中有多个具有特定文件名格式的文本文件,我想将所有文件中的所有内容连接到一个.csv文件,并需要使用最终csv文件中的特定数据列制作交互式三维散点图。为此,我尝试将文件的数据连接成一个。但是我的输出有大约5000个条目,而不是500个条目(在500个条目之后,值会自动重复)。帮我找出错误 [交互式绘图:能够使用鼠标放大/缩小/旋转绘图] import fnmatch import pandas as pd data = pd.DataFrame() for f_name in os.

我在一个目录中有多个具有特定文件名格式的文本文件,我想将所有文件中的所有内容连接到一个.csv文件,并需要使用最终csv文件中的特定数据列制作交互式三维散点图。为此,我尝试将文件的数据连接成一个。但是我的输出有大约5000个条目,而不是500个条目(在500个条目之后,值会自动重复)。帮我找出错误

[交互式绘图:能够使用鼠标放大/缩小/旋转绘图]

import fnmatch
import pandas as pd

data = pd.DataFrame()
for f_name in os.listdir(os.getcwd()):
 if fnmatch.fnmatch(f_name, 'hypoDD.reloc.*'):
     print(f_name)
     df=pd.read_csv(f_name,header=None,sep="\s+|\t")
     data=data.append(df,ignore_index=True)
     #print(data)


data.to_csv('outfile.txt',index=False)


我想使用每个文件中的特定数据列制作一个交互式单3D散点图,每个文件的数据都应该用不同的散点颜色表示。(我有大约18个不同的文件,我甚至不知道18个不同的颜色名称!)

最后,我能够编写代码,尽管图形需要更多修改,如(设置轴限制,减小散射大小,根据每个文件给出散射颜色,Z轴方向应向下)

建议

import os
import glob

mypath = os.getcwd()
file_count = len(glob.glob1(mypath,"hypoDD.reloc.*"))
print("Number of clusters is:" ,file_count)

# Get .txt files

import fnmatch
import pandas as pd

data = pd.DataFrame()
for f_name in os.listdir(os.getcwd()):
 if fnmatch.fnmatch(f_name, 'hypoDD.reloc.*'):
     print(f_name)
     df=pd.read_csv(f_name,header=None,sep="\s+|\t")
     data=data.append(df,ignore_index=True)
     #print(data)


data.to_csv('outfile.txt',index=False)
latitude=data.iloc[:,1]
longitude=data.iloc[:,2]
depth=data.iloc[:,3]

scatter_data = pd.concat([longitude, latitude,depth], axis=1)
scatter_data.columns=['lon','lat','depth']

#------------------------------3D scatter--------------------------------
#----setting default renderer------------
import plotly.io as pio
pio.rrenderers
pio.renderers.default = "browser"
#-----------------------------------------
import plotly.express as px

fig = px.scatter_3d(scatter_data,x='lon', y='lat', z='depth')
fig.show()
fig.write_image("fig1.jpg")

最后,我能够编写代码,即使图形需要更多的修改,如(设置轴限制,减小散射大小,根据每个文件给出散射颜色,Z轴方向应向下)

建议

import os
import glob

mypath = os.getcwd()
file_count = len(glob.glob1(mypath,"hypoDD.reloc.*"))
print("Number of clusters is:" ,file_count)

# Get .txt files

import fnmatch
import pandas as pd

data = pd.DataFrame()
for f_name in os.listdir(os.getcwd()):
 if fnmatch.fnmatch(f_name, 'hypoDD.reloc.*'):
     print(f_name)
     df=pd.read_csv(f_name,header=None,sep="\s+|\t")
     data=data.append(df,ignore_index=True)
     #print(data)


data.to_csv('outfile.txt',index=False)
latitude=data.iloc[:,1]
longitude=data.iloc[:,2]
depth=data.iloc[:,3]

scatter_data = pd.concat([longitude, latitude,depth], axis=1)
scatter_data.columns=['lon','lat','depth']

#------------------------------3D scatter--------------------------------
#----setting default renderer------------
import plotly.io as pio
pio.rrenderers
pio.renderers.default = "browser"
#-----------------------------------------
import plotly.express as px

fig = px.scatter_3d(scatter_data,x='lon', y='lat', z='depth')
fig.show()
fig.write_image("fig1.jpg")