0
私は、特定のエッジとノードのいくつかがハイライト表示されているプロジェクトの特定のツアーをプロットしようとしています。これを行うために、最初にplot_surface
コマンドを使用してトーラスを描いてから、plot_wireframe
を使用して特定のエッジとノードを強調表示します。だから、ここに私のコードです:Pythonのより良い3D図形のために、pyplot plot_surfaceの図の一部を隠す方法は?
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d import *
import matplotlib.pyplot as plt
import numpy as np
from random import random, seed
from matplotlib import cm
from matplotlib import colors
import matplotlib as mpl
# mpl.rcParams['lines.linewidth'] = 5
plt.hold(True)
n = 30
theta = np.linspace(0, 2.*np.pi, n)
phi = np.linspace(0, 2.*np.pi, n)
theta, phi = np.meshgrid(theta, phi)
c, a = 2, 1
x = (c + a*np.cos(theta)) * np.cos(phi)
y = (c + a*np.cos(theta)) * np.sin(phi)
z = a * np.sin(theta)
fig = plt.figure()
ax1 = fig.add_subplot(111, projection='3d')
ax1.set_zlim(-2,2)
ax1.scatter(x,y,z+0.001,color="black",s=1,marker='o')
for i in range(n):
if(i%3==0):
color='yellowgreen'
elif(i%3==1):
color="silver"
else:
color="cyan"
ax1.plot_surface(x[i:i+2], y[i:i+2], z[i:i+2], rstride=3, cstride=1, edgecolors=color,color=color,alpha=0.4,shade=False)
ax1.plot_wireframe(x, y, z,rstride=3, cstride=1,color='r',alpha=0.4)
ax1.view_init(36, 26)
plt.show()
これは、図では、私が取得する:あなたが見ることができるように
は、私のイメージの背中の部分はあなたが前のショットからそれを見たときに表示されていますこれにより図があまり明確になりません。私はフロントショットから背中の部分をどの方向にも見えないようにしたい。他の言葉で、私は(私はこの1つを得るために、私の最初の画像の上にフォトショップを使用しているが、私は私のコードは私のために自動的にそれを行うようにしたい)この画像に類似かなっ取得したい:
私は誰でも私がこの問題を解決するのを助けることができたら本当に感謝します。
に
で
を交換してください。私はあなたの答えをテストしたかどうかは分かりませんが、私はそれを確認しただけで何の違いも生じません。 – Infintyyy
ワイヤフレームアルファを1に設定しましたか?私はあなたがしなかったと確信しています。あなたのプロットは透明度を明確に示しています –
申し訳ありませんが、今調べてみてください。ワイヤフレームからサーフェスを生成し、これを埋める必要があります。ワイヤフレームに半透明を設定できません。 –