1

次のデータから 3D サーフェスを生成するには、ここここの例で何を変更または追加する必要がありますか?

[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]

注: 上記のコードに基づいていくつかのことを試しましたが、これまでのところ機能させることができませんでした。ここでコードを引用しなかったのは、質問を実際よりも複雑にする必要があるためです。

4

2 に答える 2

0

x-data を少し変更すると、サーフェスが得られます。

from mpl_toolkits.mplot3d import Axes3D
import matplotlib
import numpy as np
from matplotlib import cm
from matplotlib import pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

data = [[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]
        ]
x = [item[0] for item in data]
# change x here
x = np.linspace(0, 100, num = 16)
y = [item[1] for item in data]
z = [item[3] for item in data]

X, Y = np.meshgrid(x, y)
_z, Z = np.meshgrid(x, z)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.YlGnBu_r)
ax.set_zlim3d(0, 1)
ax.set_xlabel(r'xlabel')
ax.set_ylabel(r'ylabel')
ax.set_zlabel(r'zlabel')
plt.show()
plt.close()

ここに画像の説明を入力

于 2013-10-09T00:39:11.620 に答える