Pythonで3D散布図を作成するにはどうすればよいですか?


92

私は現在、nx3マトリックス配列を持っています。3つの列を3つの軸としてプロットしたいと思います。どうやってやるの?

私はグーグルでMatlabの使用を提案しましたが、それを理解するのに本当に苦労しています。また、散布図である必要があります。

誰か教えてもらえますか?


1
プロットを実行するアプリケーションを探していますか、それともプロットを描画するコードを(どの言語でも)記述したいですか?
Nils Pipenbrinck 2009

漸近線を使用してください-それは無料で強力であり、品質は素晴らしいです!
Hamish Grubijan 2009

1
配列がある場合は、プログラムがあり、この配列はその一部であると思います。どんなプログラム(言語)なのか教えてください!
Carl Smotricz 2009

私はまだ漸近線を(libとして)使用するか、その入力ファイルを生成するだけです。それが驚くべき出力品質であることを確認してください!
Hamish Grubijan 2009

2
それnが3行の配列の場合、3次元の曲線のプロットが得られます。「3次元プロット」の場合、n x m x l配列が必要になります。曲線(x,y,z)上の点を表すタプルが1つある曲線が必要ですか?
Alok Singhal

回答:


161

これにはmatplotlibを使用できます。matplotlibには、あなたが望むことを正確に実行するmplot3dモジュールがあります。

from matplotlib import pyplot
from mpl_toolkits.mplot3d import Axes3D
import random


fig = pyplot.figure()
ax = Axes3D(fig)

sequence_containing_x_vals = list(range(0, 100))
sequence_containing_y_vals = list(range(0, 100))
sequence_containing_z_vals = list(range(0, 100))

random.shuffle(sequence_containing_x_vals)
random.shuffle(sequence_containing_y_vals)
random.shuffle(sequence_containing_z_vals)

ax.scatter(sequence_containing_x_vals, sequence_containing_y_vals, sequence_containing_z_vals)
pyplot.show()

上記のコードは、次のような図を生成します。

matplotlib3D画像


11
素晴らしい解決策。plt.zlabel('zlabel')動作しないことに注意してください。z軸にラベルを付けるには、以下を使用する必要がありますax.set_zlabel('Z')
ヨナタンシムソン2016年

8

それが私のために働いた次のコードを使用してください:

# Create the figure
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# Generate the values
x_vals = X_iso[:, 0:1]
y_vals = X_iso[:, 1:2]
z_vals = X_iso[:, 2:3]

# Plot the values
ax.scatter(x_vals, y_vals, z_vals, c = 'b', marker='o')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_zlabel('Z-axis')

plt.show()

X_isoは私の3D配列であり、X_vals、Y_vals、Z_valsの場合、その配列から1つの列/軸をコピー/使用し、それぞれそれらの変数/配列に割り当てました。


1

代わりに漸近線を使用してください!

これはそれがどのように見えるかです:

http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.pdf

これはコードです:http//asymptote.sourceforge.net/gallery/3D%20graphs/helix.asy

Asymptoteはデータファイルを読み込むこともできます。

そして完全なギャラリー:http//asymptote.sourceforge.net/gallery/

Python内から漸近線を使用するには:

http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py


1
この回答のリンクのほとんどは今では死んでいるのではないかと思います=(
alkanen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.