私はVisPy
を使用してサーフェスをプロットしていますが、scene.visuals.SurfacePlot
のパラメータはcolormap
でなく、color
です。誰も表面プロットでcolormap
を使用する方法を知っていますか?VisPyサーフェスプロットでのカラーマップの使用方法
0
A
答えて
1
現在、SurfacePlotのパラメータが機能しないようにするbugがあるようです。表面に単色以外のものを与えることはおそらくその道を進む必要があります。したがって、現時点ではソースコードを変更することなく可能ではない可能性があります。
import vispy.plot as vp
from vispy import color
fig = vp.Fig(show=False)
cnorm = z/abs(np.amax(z))
colors = color.get_colormap("hsl").map(cnorm).reshape(z.shape + (-1,))
fig[0, 0].surface(z, x=x, y=y, colors=colors)
基本的に、あなたは0と1の間になるようにデータを正規化し、その後にそれらの値をマップ:何が価値がある、私はこのバグが存在しない場合は、次はうまくいくと信じについては
カラーマップ。これによりSurfacePlotのcolors
パラメータに渡すことができるRGBカラーの3D配列が返されます。
2
頂点ごとに色を設定する必要があります。つまり、頂点の色です。これを達成できる1つの方法は次のとおりです。
import vispy.plot as vp
from vispy import color
from vispy.util.filter import gaussian_filter
import numpy as np
z = np.random.normal(size=(250, 250), scale=200)
z[100, 100] += 50000
z = gaussian_filter(z, (10, 10))
fig = vp.Fig(show=False)
cnorm = z/abs(np.amax(z))
c = color.get_colormap("hsl").map(cnorm).reshape(z.shape + (-1,))
c = c.flatten().tolist()
c=list(map(lambda x,y,z,w:(x,y,z,w), c[0::4],c[1::4],c[2::4],c[3::4]))
#p1 = fig[0, 0].surface(z, vertex_colors=c) # why doesn't vertex_colors=c work?
p1 = fig[0, 0].surface(z)
p1.mesh_data.set_vertex_colors(c) # but explicitly setting vertex colors does work?
fig.show()
明示的なsetter set_vertex_colorsの使用がうまくいきました。残念ながら、をsurface(z, vertex_colors=c)
に渡すとエラーなしで実行されましたが、頂点の色ごとに変更はありませんでした。結論:明示的にset_vertex_colors
を使用してください。
関連する問題
- 1. 3Dプロットでのカラーマップの使用方法は?
- 2. 3Dサーフェスプロット内の配列のブールマスキングによってカラーマップが破棄される
- 3. Vispyを使用して3次元でキューブを回転する方法
- 4. :depth_first_visitを使用する方法、問題カラーマップ
- 5. MATLABマトリクスを使用した3Dでのいくつかのサーフェスプロット
- 6. Javaでカラーマップをプロットする方法は?
- 7. matplotlibのカラーサイクルをカラーマップとして使用
- 8. Matlabの2つのサーフェスプロット図を比較するためのカラーマップ範囲の安定化
- 9. パイロットでベクトル方向にカラーマップを使用する
- 10. .datファイルの3Dサーフェスプロット
- 11. ラジアルデータをサーフェスプロット用のデカルトグリッドに変換
- 12. PyQt5フレームにvispyキャンバスを埋め込む方法
- 13. vispyで回転キューブのテクスチャとしてmedia/gifを使用する
- 14. Python 3を使って連続カラーマップで `Bokeh`の` Heatmaps`を作る方法は?
- 15. Matplotlibでデフォルトのカラーマップを設定する方法
- 16. Sassのカラーマップで線形勾配を設定する方法
- 17. Pythonのインタラクティブプロットアニメーションでカラーマップを設定する方法
- 18. GUIでmatplotlibのカラーマップを使用するには?
- 19. Pythonサーフェスプロット値エラー
- 20. 2DPandasデータフレームのMatplotlib 3Dサーフェスプロット
- 21. MSチャートまたはその他の.Netチャートコンポーネントでカラーマップを使用してイメージを描画する方法は?
- 22. ブーストグラフのカラーマップbreadth_first_visit
- 23. Pythonのmatlabカラーマップ
- 24. カラーマップのサイズ(グレー)
- 25. vispyを使ってグレースケールで画像を表示
- 26. OpenCVの異なるカラーマップ間の変換方法は?
- 27. カラーマップを使用してmatplotlibのラインの色を設定する
- 28. matplotlibグラフに新しい色を追加する方法(またはカラーマップを使用する方法)?
- 29. Mayaviのquiver3d()のカラーマップ
- 30. カラーマップを使用したMatplotlib散布図の特定の点のマーカタイプを設定する方法
私はこの方法を試しましたが、「インデックスされていれば色は2Dでなければならない」というエラーが表示されます。このスクリプトをコードに追加する必要がありますか?これは私のコードです: 'fig = vp.Fig(show = False) cnorm = z/abs(amax(z)) colors = color.get_colormap(" cool ")。map(cnorm).reshape(z.shapeシェーディング= 'スムース'(0、ユーザ_アクション=なし)、シェーディング= 'スムース' 、色=色) ' –
右。あなたは私が言及したバグにぶつかった。ドキュメントでは、カラー配列は2Dでなければならないと述べていますが、コードでは3Dにする必要があります。しかし、配列を2Dにフラット化すると、まだ初期化されていない基本構造にアクセスしようとするバグが発生します。だから、私が言ったように。おそらくそれが修正されるのを待つか、自分で修正する必要があります。あなたはvispy.sceneのVolumeオブジェクトを試してみてください。これはcmap引数 – orodbhen
が好きです。どうもありがとうございます。私はそれを試してみる:) –