Remove Border From Matplotlib 3d Pane
I would like to remove the borders from my 3D scene as described below. Any idea how to do that? Here the code to generate the current scene: import matplotlib.pyplot as plt from
Solution 1:
I usually set the alpha channel to 0 for spines and panes, and finally I remove the ticks:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# Create figure
plt.style.use('dark_background') # Dark theme
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# Make panes transparent
ax.xaxis.pane.fill = False# Left pane
ax.yaxis.pane.fill = False# Right pane# Remove grid lines
ax.grid(False)
# Remove tick labels
ax.set_xticklabels([])
ax.set_yticklabels([])
ax.set_zticklabels([])
# Transparent spines
ax.w_xaxis.line.set_color((1.0, 1.0, 1.0, 0.0))
ax.w_yaxis.line.set_color((1.0, 1.0, 1.0, 0.0))
ax.w_zaxis.line.set_color((1.0, 1.0, 1.0, 0.0))
# Transparent panes
ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0))
ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 0.0))
# No ticks
ax.set_xticks([])
ax.set_yticks([])
ax.set_zticks([])
Solution 2:
Try to add the following parameter when creating the figure
plt.figure(frameon=False)
EDIT: The lines containing comments are the ones i added/changed
import matplotlib.pyplot as plt
import numpy as np # Imported numpy for random datafrom mpl_toolkits.mplot3d import Axes3D
plt.style.use('dark_background')
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.xaxis.pane.fill = False
ax.yaxis.pane.fill = False
ax.set_xticklabels([])
ax.set_yticklabels([])
ax.set_zticklabels([])
# Remove the axis
plt.axis('off')
# Random data to illustrate
zdata = 15 * np.random.random(100)
xdata = np.sin(zdata) + 0.1 * np.random.randn(100)
ydata = np.cos(zdata) + 0.1 * np.random.randn(100)
ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap='Greens')
# Print chart (savefig overwrites some styling configs, better this way)withopen('3d.png', 'wb') as outfile:
fig.canvas.print_png(outfile)
Post a Comment for "Remove Border From Matplotlib 3d Pane"