Почему моя поверхность за решеткой?Я надеюсь, что это может покрыть сетку - PullRequest
2 голосов
/ 29 апреля 2019

Моя фигура была сделана Matplotlib3 с Python3.7.

Я обработал свои данные на поверхности в трехмерной системе координат.Но я обнаружил, что моя поверхность находится за решеткой.Я надеюсь, что поверхность может покрыть сетку.Я не знаю, как это исправить.

Surface

Мой код:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
# from IRCA import *

## Global Setting

plt.rc("font", **{"size":14,"family":"serif","serif":["Computer Modern"]})
plt.rc("text", usetex = True)

plt.rcParams["grid.color"]          = "#D4D4D4"
plt.rcParams["grid.linestyle"]      = "dashed"

formatter = mpl.ticker.ScalarFormatter(useMathText = True)
formatter.set_scientific(True) 
formatter.set_powerlimits((-1,1))

## Plot Statement

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")

## Title

fig.suptitle(r"SupTitle with \LaTeX", size=18, color="black")
ax.set_title(r"SubTitle with \LaTeX", size=16, color="black")

## Data Input

x, y, z = np.loadtxt("Data/dataTot.dat", unpack=True)

surf = ax.plot_trisurf(x, y, z, cmap="gnuplot")

## Ticks and Axes

ax.xaxis._axinfo["tick"]["inward_factor"] = 0.0
ax.xaxis._axinfo["tick"]["outward_factor"] = 0.2
ax.yaxis._axinfo["tick"]["inward_factor"] = 0.0
ax.yaxis._axinfo["tick"]["outward_factor"] = 0.2
ax.zaxis._axinfo["tick"]["inward_factor"] = 0.0
ax.zaxis._axinfo["tick"]["outward_factor"] = 0.2

ax.xaxis.pane.set_edgecolor("#D0D0D0")
ax.yaxis.pane.set_edgecolor("#D0D0D0")
ax.zaxis.pane.set_edgecolor("#D0D0D0")
ax.xaxis.pane.set_alpha(1)
ax.yaxis.pane.set_alpha(1)
ax.zaxis.pane.set_alpha(1)

ax.xaxis.pane.fill = False
ax.yaxis.pane.fill = False
ax.zaxis.pane.fill = False

ax.invert_xaxis()
ax.invert_yaxis()
ax.invert_zaxis()

ax.set_proj_type("persp")                   # "ortho": Orthographic; "persp": Perspective(default)
ax.grid(True)
ax.set_axis_on()

## Figure Output

# fig.savefig("Python Matplotlib 3D.pdf", dpi=1080)
plt.show()

Затем файл: dataTot.дата: https://github.com/ConAntares/Algorithms/blob/master/Data/dataTot.dat

1 Ответ

2 голосов
/ 29 апреля 2019

Используйте antialiased=False при построении поверхности. Прочитайте этот ответ для лучшего объяснения.

surf = ax.plot_trisurf(x, y, z, cmap="gnuplot", antialiased=False)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...