2011-04-06 34 views
5

Bazı verilerin kontur çizimini yapmak istiyorum, ancak alandaki tüm değerler aynı değerde olabilir. Bu, matplotlib'de bir hataya neden olur; Örneğin, aşağıdaki kodu çalıştırırsanız, bir hata alırsınız, ancak zi'un ikinci tanımını silin ve beklendiği gibi çalışır.Matplotlib - Tekil değerde kontur çizimi

Tek bir alan ise, bazı veriler için "çevre çizgisi" çizimi nasıl yapabilirim? Düzenli kontur çizimine benzemeyi istiyorum (bazı renklerle dolu bir kutuya sahip olmak ve yan taraftaki renk çubuğunu göstermek istiyorum. Renk çubuğu aynı renkte olabilir veya hala 15 renk gösterebilir. Umrumda değil.

Kodu:

from numpy  import array 
import matplotlib.pyplot as plt 

xi = array([0., 0.5, 1.0]) 
yi = array([0., 0.5, 1.0]) 
zi = array([[0., 1.0, 2.0], 
      [0., 1.0, 2.0], 
      [0., 1.0, 2.0]]) 
zi = array([[1.0, 1.0, 1.0], 
      [1.0, 1.0, 1.0], 
      [1.0, 1.0, 1.0]]) 

CS = plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k') 
CS = plt.contourf(xi, yi, zi, 15, cmap=plt.cm.jet) 
plt.colorbar() 
plt.show() 

cevap

10

Eh, contourf, mükemmel şekilde işleyen bu şoklar contour bu.

Neden sadece bunu: orada düzgün bir saha, ve çizgilerle dolu bir kontur arsa aksi takdirde

import numpy as np 
import matplotlib.pyplot as plt 

xi = np.array([0., 0.5, 1.0]) 
yi = np.array([0., 0.5, 1.0]) 
zi = np.ones((3,3)) 

try: 
    CS = plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k') 
except ValueError: 
    pass 
CS = plt.contourf(xi, yi, zi, 15, cmap=plt.cm.jet) 

plt.colorbar() 
plt.show() 

Bu şekilde, (varsayılan olarak, yeşil) kutu dolu alırsınız.

enter image description here

İlgili konular