Я пытаюсь объединить данные в соответствии с модулем вектора Q и сложить все интенсивности, которые попадают в ячейки вдоль оси mod (Q). Затем я пытаюсь построить график рассеяния для интенсивности бинов, причем положение вдоль оси mod (Q) является центром бинов.
Я взял данные из внешнего файла и поместил их в кадр данных pandas. Затем я добавил еще один столбец в этот фрейм данных pandas, чтобы задать значение mod (Q).
Затем я создал ячейки для своих данных. Эти бункеры были созданы с помощью «вырезки» из панд. Затем я создал сгруппированный массив данных панд с ячейками и суммой интенсивностей, которые попадают в эти ячейки. Однако я изо всех сил пытаюсь использовать этот сгруппированный массив данных панд для создания точечного графика.
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from matplotlib import style
raw_data_file_path = '../Raw_Data_Files/Original_Files/constantEcutsModified'
df = pd.read_csv(raw_data_file_path, sep=',', header=None, names=['Q_1', 'Q_2', 'intensity', 'uncertainty'])
df['mod_Q'] = np.sqrt(df['Q_1']**2 + df['Q_2']**2)
bins = pd.cut(df['mod_Q'], 100)
grouped_df = df.groupby(bins)['intensity'].agg('sum')
Это то, что я получаю, печатая верхние 15 строк grouped_df:
mod_Q
(-0.014, 0.14] 0.0000
(0.14, 0.28] 0.0000
(0.28, 0.421] 0.0000
(0.421, 0.561] 0.0000
(0.561, 0.701] 0.0000
(0.701, 0.841] 0.0000
(0.841, 0.982] 0.0000
(0.982, 1.122] 6979.8172
(1.122, 1.262] 9873.2400
(1.262, 1.402] 17253.2000
(1.402, 1.543] 22006.3200
(1.543, 1.683] 24311.7400
(1.683, 1.823] 28123.0800
(1.823, 1.963] 29002.4300
(1.963, 2.104] 34473.0770
Name: intensity, dtype: float64