Отображение карты цветов / легенды с графиками x, y, z и четвертой переменной - PullRequest
2 голосов
/ 08 марта 2020

Я использую Pandas и очень плохо знаком с программированием. Я строю график энергетического депонирования (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()

Вот как выглядит график!

4D plot

Это из моделирования физики элементарных частиц с использованием GEANT4. Фактические файлы очень большие (3,7 ГБ, которые я разделил на 40i sh МБ), и этот график представляет только небольшую часть данных.

...