Что нужно изменить или добавить в любой из примеров here и here, чтобы создать 3D-поверхность из следующих данных?Как построить 3D-поверхности в Python
[100, 0, 'TF', 0]
[100, 0, 'DF', 0]
[100, 50, 'TF', 0]
[100, 50, 'DF', 0]
[100, 100, 'TF', 0]
[100, 100, 'DF', 0]
[100, 150, 'TF', 0.84496124031007758]
[100, 150, 'DF', 0.87209302325581395]
[100, 200, 'TF', 0.88139534883720927]
[100, 200, 'DF', 0.86201550387596892]
[100, 250, 'TF', 0.87441860465116272]
[100, 250, 'DF', 0.889922480620155]
[100, 300, 'TF', 0.87984496124031009]
[100, 300, 'DF', 0.89922480620155043]
[100, 350, 'TF', 0.92015503875968996]
[100, 350, 'DF', 0.90697674418604657]
Примечание: Я попробовал несколько вещей, на основе кода, упомянутого выше, но я не смог заставить его работать до сих пор. Причина, по которой я не цитировал мой код здесь, потому что я бы поставил свой вопрос более сложным, чем на самом деле.
Я тонка relavent линия в первом примере, '' 'ax.plot_surface (X, Y, Z, rstride = 1, cstride = 1, cmap = cm.YlGnBu_r) '' '. Вам нужно извлечь данные из x, y и z из ваших списков и использовать эти данные в качестве аргументов X, Y и Z для этой функции. Довольно уверен, что это могут быть списки, а также массивы numpy. – wwii
'plot_surface()' требует, чтобы ваши данные X, Y и Z были регулярно решены в 2D-массивах, например, вы получили бы от 'np.meshgrid()'. Не совсем ясно, как структурированы ваши данные (что такое '' TF'' и '' DF''?), Но похоже, что он не чередуется с сеткой. Вы можете попробовать 'plot_trisurf()', который будет принимать нерегулярные данные X, Y, Z в виде 1D массивов - [см. Мой ответ здесь] (http://stackoverflow.com/questions/17367558/plot-a-3d -поверхности-из-хуга-рассеяния-данных-в-питона? RQ = 1). –
Очевидно, что 3 столбца следует удалить (я не буду углубляться в это). Я уже пробовал вещи, о которых вы говорили, но, как я уже сказал, всегда что-то не хватает. Не могли бы вы дать код для этого? – user2295350