2016-02-10 30 views
9

bu komplo gibi değer veya büyüklüğünü göstermek için bir arsa rengini kullanma imkanını sunmaktadır: bokeh içinkullanma renk haritası <a href="http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter" rel="noreferrer">scatterplot</a><code>matplotlib</code> yılında

enter image description here

, benzer examples elle oluşturmak gibi görünüyor rgb renkleri, büyüklükle ölçeklendirilmiş renkle çizimleri üretmeyi zorlaştırır, esp. wrt. ayrılan renk haritaları.

bokeh'da benzer işlevlere sahip olmak veya rengi ayarlamak için matplotlib colormaps kullanmak mümkün mü?

cevap

10

Sadece matplotlib 'un colormaps'lerini doğrudan kullanacak kadar kolay. Bir dönecektir değerler dizisi ile başlatılıyor, cm herhangi matplotlib renk haritası için,

import numpy as np 

from bokeh.plotting import figure, show, output_notebook 
import matplotlib as mpl 

output_notebook() 

N = 4000 
x = np.random.random(size=N) * 100 
y = np.random.random(size=N) * 100 
radii = np.random.random(size=N) * 1.5 
colors = [ 
    "#%02x%02x%02x" % (int(r), int(g), int(b)) for r, g, b, _ in 255*mpl.cm.viridis(mpl.colors.Normalize()(radii)) 
] 

p = figure() 

p.scatter(x, y, radius=radii, 
      fill_color=colors, fill_alpha=0.6, 
      line_color=None) 

show(p) 

Esasen: Örneğin, aşağıdaki bokeh 'ın örnek (Bir jupyter dizüstü kullanıyorum unutmayın) içinde viridis kullanır Her bir değere sahip dizi [0,1] aralığındaki [r, g, b, a] değerleriyle değiştirilir. Bu, tüm değerlerin 0 ile 1 arasında olduğunu varsayar. Burada bunu sağlamak için matplot.colors.Normalize kullanın.