Obecnie mam macierz macierzy nx3. Chcę wykreślić trzy kolumny jako trzy osie. Jak mogę to zrobić?
Wyszukałem w Google i ludzie zasugerowali używanie Matlab , ale naprawdę ciężko mi to zrozumieć. Potrzebuję też, żeby był to wykres punktowy.
Czy ktoś może mnie nauczyć?
python
3d
matplotlib
plot
scatter-plot
user211037
źródło
źródło
n
tablica na 3, otrzymasz wykres krzywej w 3 wymiarach. Do „wykresu trójwymiarowego” potrzebna byłabyn x m x l
tablica. Czy chcesz mieć krzywą z dowolną krotką(x,y,z)
reprezentującą punkt na krzywej?Odpowiedzi:
Możesz do tego użyć matplotlib . matplotlib ma moduł mplot3d , który zrobi dokładnie to, co chcesz.
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()
Powyższy kod generuje figurę taką jak:
źródło
plt.zlabel('zlabel')
nie zadziała. Aby oznaczyć oś Z trzeba użyć:ax.set_zlabel('Z')
.Użyj następującego kodu, który zadziałał dla mnie:
# 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()
podczas gdy X_iso jest moją tablicą 3-W, a dla X_vals, Y_vals, Z_vals skopiowałem / użyłem 1 kolumny / osi z tej tablicy i przypisałem odpowiednio do tych zmiennych / tablic.
źródło
Zamiast tego użyj asymptoty!
Tak to może wyglądać:
http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.pdf
To jest kod: http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.asy
Asymptote może również czytać pliki danych.
Oraz pełna galeria: http://asymptote.sourceforge.net/gallery/
Aby użyć asymptoty z poziomu Pythona:
http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py
źródło