У меня есть файл данных, который содержит дипольные моменты и координаты диполей. Он имеет 6 столбцов, первые 3 столбца для координат и последние три для дипольных моментов. Также у него есть данные для разных временных шагов, позвольте мне назвать эти кадры.
# TIMESTEP 350000 0.000000 0.000000 0.000000 406.427474 203.221744 247.500000
3.852 1.909 22.872 0.00150219 0.00112514 -0.00643028
3.715 1.854 27.033 -0.00038816 -0.00103382 0.00692119
3.597 1.860 31.078 0.00048117 -0.00063481 0.00745092
3.428 1.862 35.215 0.00064382 0.00016735 0.00891062
3.314 1.930 39.330 -0.00062401 0.00061499 0.00743703
3.144 1.920 43.449 0.00056694 -0.00012774 0.00743086
..
..
# TIMESTEP 350500 0.000000 0.000000 0.000000 406.427474 203.221744 247.500000
3.852 1.909 22.872 0.00150219 0.00112514 -0.00643028
3.715 1.854 27.033 -0.00038816 -0.00103382 0.00692119
3.597 1.860 31.078 0.00048117 -0.00063481 0.00745092
..
..
В каждом кадре есть приблизительно 200 000 точек данных, диполей, которые я хотел бы представить. Я попробовал колчан, но со слишком большим количеством стрелок ничего не было видно. Лучшим подходом было просто отобразить z-компонент диполей - что наиболее актуально для меня - и использовать тепловую карту с
ax.set(xlim=(X.min(),X.max()), ylim=(Y.min(),Y.max() ) )
cmap = plt.get_cmap('seismic')
levels = MaxNLocator(nbins=100).tick_values(-Plim, Plim)
Результат был примерно таким:
Но все же я не доволен этим подходом, во-первых, это двумерная проекция, во-вторых, я теряю много информации, используя MaxNLocator. Есть ли лучший подход для такой визуализации? Было бы полезно, если бы я мог уменьшить количество диполей, просто рассчитав локальные средние значения, то есть увеличив размер me sh. Существует ли ярлык для вычисления локальных средних значений, например, среднего значения каждого диполя и его первых соседей, чтобы уменьшить количество стрелок и сделать его более заметным?