アプリ版:「スタンプのみでお礼する」機能のリリースについて

Q1)下記のコードをPython3.11.0で実行しますが、表示画面の座標等が
表示出来ません。
正しいコードをお教え頂けますと大変有難いです。
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import pylab
import numpy as np
import mpmath
mpmath.dps = 5

# Use instead of arg for a continuous phase
#figsize=(4.0, 4.0)
def arg2(x):
return mpmath.sin(mpmath.arg(x))

#f = lambda z: abs(mpmath.loggamma(z))
#f = lambda z: arg2(mpmath.exp(z))
#f = lambda z: abs(mpmath.besselj(3,z))
f = lambda z: arg2(mpmath.cos(z))
#fig = figure(figsize=(6.0, 6.0))
fig = pylab.figure()
ax = Axes3D(fig)
X = np.arange(-5, 5, 0.125)
Y = np.arange(-5, 5, 0.125)
X, Y = np.meshgrid(X, Y)
xn, yn = X.shape
W = X*0
for xk in range(xn):
for yk in range(yn):
try:
z = complex(X[xk,yk],Y[xk,yk])
w = float(f(z))
if w != w:
raise ValueError
W[xk,yk] = w
except (ValueError, TypeError, ZeroDivisionError):
# can handle special values here
pass
#print( xk, xn)

# can comment out one of these
ax.plot_surface(X, Y, W, rstride=1, cstride=1, cmap=cm.jet)
ax.plot_wireframe(X, Y, W, rstride=5, cstride=5)

pylab.show()
以上、宜しくお願いします。

A 回答 (1件)

私の環境では全然動きませんでした。

真っ白な絵が表示されるだけ。

私は pyplot派なんで、pyplotでちょい書き直したらが動きました。
因みに最近は pylab は非推奨と聞いてます。
メンテされてるのかな~
matplotlib は変化が早いので、pylab が追い付いていないのかも。
nativeなメソッドを使うことを推奨します。

from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
import mpmath
mpmath.dps = 5

def arg2(x):
return mpmath.sin(mpmath.arg(x))

f = lambda z: arg2(mpmath.cos(z))

fig, ax = plt.subplots(subplot_kw=dict(projection="3d"))
X = np.arange(-5, 5, 0.125)
Y = np.arange(-5, 5, 0.125)
X, Y = np.meshgrid(X, Y)
xn, yn = X.shape
W = X*0
for xk in range(xn):
 for yk in range(yn):
  try:
   z = complex(X[xk,yk],Y[xk,yk])
   w = float(f(z))
   if w != w:
    raise ValueError
   W[xk,yk] = w
  except (ValueError, TypeError, ZeroDivisionError):
   pass

ax.plot_surface(X, Y, W, rstride=1, cstride=1, cmap=cm.jet)
ax.plot_wireframe(X, Y, W, rstride=5, cstride=5)

plt.show()

私の実行環境はこれ
python 3.9.6
matplotlib 3.6.2
mpmath 1.2.1
numpy 1.23.5

です。
「Pythonの3Dグラフ表示に関する質問」の回答画像1
    • good
    • 0
この回答へのお礼

回答有難う御座います。
お陰で旨く行きました。

お礼日時:2022/12/09 08:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!