SORU
3 Mart 2010, ÇARŞAMBA


MatPlotLib bir ısı haritası dağılım veri seti kullanarak oluşturmak

X,bir dağılım arsa olarak çizmek kolay ama bir ısı haritası olarak temsil etmek istiyorum O Y veri noktaları (10k) bir dizi var.

MatPlotLib örneklerde baktım ve hepsi zaten görüntüyü oluşturmak için ısı haritası hücre değerleri ile başlayın.

Orada bir ısı haritası için x,y, hepsi farklı, bir sürü dönüştüren bir yöntemdir x,y yüksek frekanslı bölgeleri olacağı ("") sıcak?

CEVAP
3 Mart 2010, ÇARŞAMBA


Matplotlibsözlüğü, istediğini düşünüyorumhexbinarsa.

Eğer komplo bu tür aşina iseniz, sadece biriki değişkenli histogramhangi xy-düzlem altıgen düzenli bir ızgara ile döşenmiş mozaik.

Histogram itibaren, sadece noktalarının sayısı her hexagon düşen Sayın, bir dizi komplo bölge discretiizewindowsbu windows her noktasını atamak; son olarak, üzerine windows gösterrenkli dizihexbin bir diyagram var , ve.

Örneğin, daireler, kareler ya da daha az yaygın olmasına rağmen, altıgen binning kabın geometri sezgisel için daha iyi bir seçim

  • altıgenler varen yakın komşu simetri(örneğin, Kare kutuları yok, örneğin, mesafedanbir kare sınırında bir noktaiçinbir nokta bu Kare her yerde eşit) değildir içinde

  • altıgen veren n-poligon yüksekdüzenli uçak Mozaiği(yani, güvenli bir şekilde yeniden model mutfak Zemin altıgen şekilli kiremit çünkü bu olmayacak herhangi bir boşluğa uzay arasındaki fayans bittiğinde-sen gerçek değilsin için diğer yüksek-n, n >= 7, çokgenler).

(Matplotlibterim kullanırhexbinarsa; (AFAIK) plotting libraries tüm yokR; Eğer hala bu tür araziler için genel kabul görmüş bir terim mi bilmiyorum, ben şüpheli olsa da göz önüne alındığında büyük olasılıklahexbinkısaaltıgen binninghangisi görüntülemek için veri hazırlamada önemli adım açıklar.)


from matplotlib import pyplot as PLT
from matplotlib import cm as CM
from matplotlib import mlab as ML
import numpy as NP

n = 1e5
x = y = NP.linspace(-5, 5, 100)
X, Y = NP.meshgrid(x, y)
Z1 = ML.bivariate_normal(X, Y, 2, 2, 0, 0)
Z2 = ML.bivariate_normal(X, Y, 4, 1, 1, 1)
ZD = Z2 - Z1
x = X.ravel()
y = Y.ravel()
z = ZD.ravel()
gridsize=30
PLT.subplot(111)

# if 'bins=None', then color of each hexagon corresponds directly to its count
# 'C' is optional--it maps values to x-y coordinates; if 'C' is None (default) then 
# the result is a pure 2D histogram 

PLT.hexbin(x, y, C=z, gridsize=gridsize, cmap=CM.jet, bins=None)
PLT.axis([x.min(), x.max(), y.min(), y.max()])

cb = PLT.colorbar()
cb.set_label('mean value')
PLT.show()   

enter image description here

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • Marques Brownlee

    Marques Brow

    21 Mart 2008
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009