Я следил за сообщением здесь, чтобы чтобы сгладить 3D-график рассеяния, который у меня есть.
Мой первоначальный график рассеяния:
И я хотел бы получить гладкий график, подобный следующему, который был сделан с помощью Mathematica,
В посте, о котором я упоминал, они используют функцию трисерфинга, чтобы получить более плавный график. Так что я, хотя я мог бы использовать то же самое, чтобы получить аналогичный сюжет. Однако то, что я получаю,
Как видите, триангуляция не сработала должным образом. И я не знаю, как это исправить.
Кто-нибудь знает способ решить эту проблему? Или есть ли какая-либо другая функция, которую я мог бы использовать для сглаживания графика рассеяния? Я думаю, что должен упомянуть, что моя диаграмма рассеяния - это НЕ поверхность, это объем.
Спасибо.
Просто чтобы прояснить это, я публикую свои коды для оригинала и сюжета трисерфинга, хотя там особо не на что смотреть.
График рассеяния:
S=pd.read_csv("SeparableStatesGrafica.csv",header=None,names=
['P0','P1','P2','P3','P4'])
G=plt.figure().gca(projection='3d')
G.scatter(S['P1'], S['P3'], S['P0'],color='red')
G.set_xlabel("P1")
G.set_ylabel("P3")
G.set_zlabel("P0")
G.view_init(40,40)
plt.show()
Сюжет трисерфинга:
S=pd.read_csv("SeparableStatesGrafica.csv",header=None,names=
['P0','P1','P2','P3','P4'])
p0=S['P0'].values
p1=S['P1'].values
p3=S['P3'].values
fig = pylab.figure(figsize=pyplot.figaspect(.96))
ax = Axes3D(fig)
ax.plot_trisurf(p1, p3, p0)
ax.set_xlabel("p1")
ax.set_ylabel("p3")
ax.set_zlabel("p0")
ax.view_init(40,40)
plt.show()