Mam funkcję z, która akceptuje parametry x i y i zwraca wynik z. Chcę to wykreślić w 3d i ustawić skalę. Jak mogę to łatwo zrobić? Spędziłem zbyt dużo czasu przeglądając dokumentację i ani razu nie widzę sposobu, aby to zrobić.Chcę użyć matplotlib do utworzenia wykresu 3d z funkcją z
Odpowiedz
Rodzaj stylu kreślenia zależy od danych (np. Czy próbujesz wykreślić krzywą 3d, powierzchnię lub rozproszenie ...), ale powinno to dać ci przykład do rozpoczęcia gry.
Zasadniczo nie przekazuje się funkcji do wykresu, najpierw należy utworzyć domenę xs i ys, a następnie obliczyć wartość zs. W moim przykładzie użyłem prostej siatki równomiernie rozmieszczonych punktów w płaszczyźnie x-y dla domeny.
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random
def fun(x, y):
return x + y
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 10
xs = [i for i in range(n) for _ in range(n)]
ys = range(n) * n
zs = [fun(x, y) for x,y in zip(xs,ys)]
ax.scatter(xs, ys, zs)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
Na powierzchni jest nieco inna, przechodzą w siatce dla domeny w 2D tablic. Oto przykład gładka powierzchnia:
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random
def fun(x, y):
return x**2 + y
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = y = np.arange(-3.0, 3.0, 0.05)
X, Y = np.meshgrid(x, y)
zs = np.array([fun(x,y) for x,y in zip(np.ravel(X), np.ravel(Y))])
Z = zs.reshape(X.shape)
ax.plot_surface(X, Y, Z)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
Z jakiegoś powodu, kiedy zmieniam funkcję, wykres pozostaje taki sam? Czy istnieje sposób na zrobienie gładkiej powierzchni? – WhatsInAName
OK, zaktualizowałem swoją odpowiedź nachyloną paraboliczną powierzchnią. – wim
Dla ostatniego wykresu, czy istnieje sposób na kolorowanie powierzchni zgodnie z Z? Powiedz, używając cloropleth? –
- 1. Tworzenie wykresu 3D z tablicy 3D numpy
- 2. Dodawanie pasków błędu do wykresu 3D w matplotlib
- 3. Ustawianie współczynnika kształtu wykresu 3D
- 4. Domyślna przezroczystość wykresu 3D z kontrolką wykresu ASP.NET?
- 5. Działki 3D wykorzystujące maplot3d z matplotlib-
- 6. Chcę użyć gevent.evnet do selera.task
- 7. matplotlib - 3d powierzchnia z prostokątnego zbioru wysokości
- 8. pythonic sposobem utworzenia 3d dict
- 9. Chcę ponownie użyć MemoryStream
- 10. Jak użyć wiązania zwiększającego z funkcją składową
- 11. Jak mogę ukryć osie w matplotlib 3d?
- 12. Dokonywanie wykresu z kwadratowymi osiami z log2 skalami w matplotlib
- 13. Jak użyć JarOutputStream do utworzenia pliku JAR?
- 14. Matplotlib: "Nieznany rzut" 3d "" błąd
- 15. pozycje etykiet zaznaczania dla matplotlib 3D plot
- 16. Pole wektorowe 3D w matplotlib
- 17. Jak mogę uzyskać dane wyjściowe z wykresu matplotlib jako SVG?
- 18. Daty w xaxis dla wykresu matplotlib z imshow
- 19. Jak wyodrębnić punkty z wykresu?
- 20. R: Model szkieletowy podobny do wykresu 3D dla zmiennych jakościowych
- 21. Zadzwoń do MiniDumpWriteDump z funkcją oddzwaniania
- 22. Rozprzestrzenianie impulsu plotowania Matplotlib w 3d
- 23. Nakładanie obrazu w 3D wykresu przy użyciu python
- 24. Łączenie wykresu punktowego z powierzchnią
- 25. Ruch z 2D do 3D
- 26. Matplotlib 3D kolor rozproszony utracony po przerysowaniu
- 27. Średnia linia na górze wykresu słupkowego z pandami i matplotlib
- 28. MATLAB: Potrzeba zrobienia wykresu 4D (3D + kolor/kolor)
- 29. ciągłe odcieni na matplotlib 3d powierzchni
- 30. Dodaj płaszczyznę regresji do wykresu punktowego 3D w Plotly
Sieć [zdolność do wykres 3D] (http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/tutorial.html) w matplotlib dodano w bardzo najnowsze wersje, o ile wiem. –
Już obejrzałem tę stronę i nie mogłem znaleźć żadnego przykładu przekazania dowolnej funkcji z do plotera 3d. – WhatsInAName