x ve y parametrelerini kabul eden bir z işlevim var ve bir z çıktısı döndürüyor. Bunu 3d olarak çizmek ve ölçekleri ayarlamak istiyorum. Bunu nasıl kolayca yapabilirim? Belgeleri incelemek için çok fazla zaman harcadım ve bir kez bunu yapmanın bir yolunu görmüyorum.Bir z işlevi verilen bir 3d çizim yapmak için matplotlib kullanmak istiyorum
cevap
Çizim stili, verilerinize bağlıdır (yani, bir 3B eğri veya bir yüzey veya bir dağılım çizmeye çalışıyorsunuz ...), ancak bu, oynamaya başlamak için size bir çalışma örneği vermelidir.
Temel olarak, işlevi arsaya aktarmazsınız, önce bir xs ve ys etki alanı yaratırsınız ve sonra z'leri bundan hesaplarsınız. Örneğimde, sadece alan için x-y düzleminde eşit aralıklı basit bir ızgara kullandım. yüzeyler için
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()
Eğer 2d dizilerde etki alanı için bir tablo içinde geçmesi biraz farklıdır.
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()
Fonksiyonu değiştirdiğimden dolayı, grafik hemen hemen aynı kalıyor mu? Düzgün bir yüzey yapmak için herhangi bir yolu var mı? – WhatsInAName
Tamam, cevabımı eğimli bir parabolik yüzeyle güncelledim. – wim
Son grafik için, yüzeye z'ye göre renklendirmenin bir yolu var mı? Bir kloroplet kullanarak mı? –
- 1. Matplotlib - bir değer z
- 2. Matplotlib arsa darbe yayılımı 3d
- 3. python - Matplotlib 3D giriş formatlama Z (bağımlı) değerler
- 4. Matplotlib: "Bilinmeyen projeksiyon '3d'" hatası
- 5. matplotlib: vektörel çizim oluşturma
- 6. Matplotlib 3d dönen grafikleri kaydetme
- 7. Matplotlib kontur çizim etiketleri
- 8. Matplotlib Bir grafik üzerinde çizim grafikleri
- 9. Matplotlib: Bir 3D Çubuk grafiğinde x ekseni üzerindeki tarihlerin biçimlendirilmesi
- 10. Tıklanan bir div yapmak için z-endeksi değiştirme üstte görünür.
- 11. Renk gradyanlı Matplotlib 3D dağılım grafiği
- 12. Ipython/pylab/matplotlib çizim hatası
- 13. Matplotlib kullanarak offset olmaksızın 3d dağılım grafiği
- 14. Python'da bir görüntü arka plan üzerinde çizim
- 15. Böyle bir şey yapmak istiyorum Açıklamalar
- 16. Bulmaca - Ben böyle bir şey yapmak istiyorum
- 17. python matplotlib - kontur çizim - güven aralığı
- 18. .NET'te 3D matematiksel modeller nasıl çizilir? Bunu yapmak için en uygun 3D motor hangisi uygun?
- 19. Flask işlevi bir argüman alır, 2 verilen
- 20. R: wireframe Kategorik değişkenler için 3D çizim gibi
- 21. R Hata İşlevi Erf (z)
- 22. Matplotlib 3d'deki eksenleri nasıl gizleyebilirim?
- 23. Matlab mesh grafiği. Z için özel işlev. Z bir matris
- 24. Matplotlib imshow zoom işlevi?
- 25. Bir iteratör verilen içindekinin karşılaştırma işlevi geri alma
- 26. dispatch.then yapmak istiyorum (...)
- 27. mplot3d'de z ekseni formatlama
- 28. Bir resimden URL'ye tuval çizim Çizim
- 29. Her bir satırı karşılaştırmak için çizim grafiği?
- 30. UILabel'de bir daire nasıl çizilir? Böyle bir şeyi yapmak istiyorum
[3D araziler için yeteneği] (http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/tutorial.html) matplotlib sadece çok eklenmiştir: İşte pürüzsüz bir yüzey örneği Bildiğim kadarıyla yeni sürümler. –
Bu sayfaya zaten baktım ve bir 3d plotter'e rastgele bir z-function geçirme örneği bulamadım – WhatsInAName