Saya ingin memiliki gambar yang terdiri dari, katakanlah, empat subplot. Dua di antaranya adalah plot garis biasa, dua di antaranya adalah gambar imshow.
Saya dapat memformat gambar imshow ke plot yang tepat, karena setiap gambar memerlukan bilah warna sendiri, sumbu yang dimodifikasi, dan sumbu lainnya dihapus. Namun, hal ini tampaknya sama sekali tidak berguna untuk subplot. Dapatkan seseorang menolong saya dengan itu?
Saya menggunakan ini untuk menampilkan data plot "biasa" di atas sebagai peta warna (dengan menskalakan array input i
ke [ i, i, i, i, i, i ]
untuk 2D dan memanggil imshow()
dengannya).
Kode berikut pertama-tama menampilkan apa yang saya perlukan sebagai subplot dan yang kedua menunjukkan semua yang bisa saya lakukan, yang tidak cukup.
#!/usr/bin/env python
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
s = { 't':1, 'x':[1,2,3,4,5,6,7,8], 'D':[0.3,0.5,0.2,0.3,0.5,0.5,0.3,0.4] }
width = 40
# how I do it in just one plot
tot = []
for i in range(width):
tot.append(s['D'])
plt.imshow(tot, norm=LogNorm(vmin=0.001, vmax=1))
plt.colorbar()
plt.axes().axes.get_xaxis().set_visible(False)
plt.yticks([0, 2, 4, 6], [s['x'][0], s['x'][2], s['x'][4], s['x'][6]])
plt.show()
f = plt.figure(figsize=(20,20))
plt.subplot(211)
plt.plot(s['x'], s['D'])
plt.ylim([0, 1])
#colorplot
sp = f.add_subplot(212)
#reshape (just necessary to see something)
tot = []
for i in range(width):
tot.append(s['D'])
sp.imshow(tot, norm=LogNorm(vmin=0.001, vmax=1))
#what I can't do now but needs to be done:
#sp.colorbar()
#sp.axes().axes.get_xaxis().set_visible(False)
#sp.yticks([0, 200, 400, 600, 800, 1000], [s['x'][0], s['x'][200], s['x'][400], s['x'][600], s['x'][800], s['x'][1000]])
plt.show()
cla
itu. Selain itu, saat memposting contoh, cara termudah adalah memplot data acak (kecuali masalahnya bergantung pada nilai pasti data tersebut). - person tacaswell   schedule 16.08.2013