Python 使用x、y、z绘图和第四个变量显示彩色地图/图例

Python 使用x、y、z绘图和第四个变量显示彩色地图/图例,python,pandas,dataframe,matplotlib,geant4,Python,Pandas,Dataframe,Matplotlib,Geant4,我使用熊猫,对编程非常陌生。我正在绘制能量沉积(eDep)作为其x、y和z位置的函数。到目前为止,已成功地将其绘制出来,但它不允许我在散点图旁边绘制彩色贴图!非常感谢您的帮助 %matplotlib inline import pandas as pd import numpy as np IncubatorBelow = "./Analysis.Test.csv" df = pd.read_csv(IncubatorBelow, sep = ',', names['Name','Track

我使用熊猫,对编程非常陌生。我正在绘制能量沉积(eDep)作为其x、y和z位置的函数。到目前为止,已成功地将其绘制出来,但它不允许我在散点图旁边绘制彩色贴图!非常感谢您的帮助

%matplotlib inline
import pandas as pd
import numpy as np

IncubatorBelow = "./Analysis.Test.csv"

df = pd.read_csv(IncubatorBelow, sep = ',', names['Name','TrackID','ParentID','xPos','yPos','zPos','eDep','DeltaE','Einit','EventID'],low_memory=False,error_bad_lines=False)
df["xPos"] = df["xPos"].str.replace("(","")
df["zPos"] = df["zPos"].str.replace(")","")

df.sort_values(by='Name', ascending=[False])
df.dropna(how='any',axis=0,subset=['Name','TrackID','ParentID','xPos','yPos','zPos','eDep','DeltaE','Einit','EventID'], inplace=True)

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
df['xPos'] = df['xPos'].astype(float)
df['yPos'] = df['yPos'].astype(float)
df['zPos'] = df['zPos'].astype(float)
#df10[df10['Name'].str.contains("e-")]

threedee = plt.figure().gca(projection='3d')
threedee.scatter(df["xPos"], df["yPos"], df["zPos"], c=df["eDep"], cmap=plt.cm.coolwarm)
threedee.set_xlabel("x(mm)")
threedee.set_ylabel("y(mm)")
threedee.set_zlabel("z(mm)")
plt.show()
情节是这样的


它来自使用GEANT4的粒子物理模拟。实际文件非常大(3.7GB,我将其分为40ish MB),此绘图仅代表数据的一小部分。

如果有人对如何更好地绘制此内容有任何建议,将不胜感激!我是个书呆子,从熊猫开始,还没有真正学会一吨巨蟒……这很难理解为散点图。我认为您应该研究3d内核密度估计(KDE)方法。@sjc好的,非常感谢!我一定会调查的。我想画一幅热图式的图,但我想我失败了……我想我会放弃我的一个方向位置(可能是Z),然后在X上画一幅热图,而且这类图的2d投影并不少见。如果有人对如何更好地绘制这些东西有任何建议,我将不胜感激!我是个书呆子,从熊猫开始,还没有真正学会一吨巨蟒……这很难理解为散点图。我认为您应该研究3d内核密度估计(KDE)方法。@sjc好的,非常感谢!我一定会调查的。我想画一幅热图式的图,但我想我失败了……我想我要放下我的一个方向位置(可能是Z),然后在X上画一幅热图,这类图的2d投影并不少见