4D тепловая карта в matplotlib
Я хочу построить 4D тепловую карту в Python через matplotlib, как эта 4d карта.
У меня уже есть набор точек сетки 3D (x,y,z)
и соответствующее ему значение функцииf
,
Я думаю о заговоре, используя plot_surface
с x
, y
, z
в качестве трех требуемых массивов, и изменить градиент цвета, используяf
,
Здесь есть способ использовать f
для цветового градиента, но у меня проблемы с построением трехмерной сетки, которая подчеркнет, что третье измерение не зависит от первых двух. (Вторая ссылка показывает иначе.)
Или есть какой-нибудь способ лучше визуализировать эти 4D-данные с помощью matplotlib?
2 ответа
Я полагаю, что ваши данные имеют немного иную форму, но пока у вас есть точка для каждой вещи, которую вам нужно построить, вы можете использовать что-то вроде того, что они сделали здесь:
Не существует хороших способов визуализации истинных 4D-функций (где третье измерение не зависит от первых двух, как вы описали), поэтому я написал небольшой пакет plot4d . Это должно быть в состоянии помочь вам визуализировать вашу функцию.
from plot4d import plotter
f = lambda x, y, z: sin(x)*y*cos(z)-x**3
z_range = np.linspace(0,2,10)
frame = plotter.Frame2D(xmin=0, xmax=1, ymin=0, ymax=1)
plotter.plot4d(f, z_range, frame=frame, func_name='f')
Монтаж:
pip install plot4d