Matplotlib'de bir yüzey çizimi yapmaya çalışıyorum, ancak z ekseninin biçimlendirmesini iyi yapamıyorum. Eksen boyunca önek ve eksenin üzerindeki üs ile (genellikle matlab'da aldığınız gibi) bilimsel gösterimde olmasını istiyorum. Şu anda sadece bilimsel notasyon olmadan değerleri (ön virgül ve beş sıfır) almadan alabilirim, ya da önekleri alırım ama üssü değil ...mplot3d'de z ekseni formatlama
1 deneyin: (bilimsel gösterim sağlar, ancak üs)
from matplotlib import ticker
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z, rstride=3, cstride=3)
formatter = ticker.ScalarFormatter()
formatter.set_scientific(True)
formatter.set_powerlimits((-2,2))
ax.w_zaxis.set_major_formatter(formatter)
deneyin 2: (burada yanlış yapıyorum varsayılan çıkışı ile aynı ondalık formda değerleri,)
from matplotlib import ticker
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z, rstride=3, cstride=3)
ax.ticklabel_format(axis="z", style="sci", scilimits=(0,0))
verir?
kullandığınız matplotlib sürümü? 1.0.1'e kadar düzeltilmeyen bir hataya koşuyor olabilirsiniz. http://old.nabble.com/Displaying-offsets-in-3d-plots-td30474615.html –
@Stephen Terry: 1.0.1 çalıştırıyorum. 'Python 2.7.1 | EPD 7.0-2 (32 bit) Üste | (r271: 86832, 3 Aralık 2010, 15:41:32) [GCC 4.0.1 (Apple Inc. yapı 5488)] darwin üzerinde >>> import matplotlib >>> matplotlib .__ version__ '1.0.1' ' – Magnus