2017-07-20 5 views

Antwort

3
sieht

Sie können die Box nach this example färben. Darüber hinaus müssen Sie Ihre Daten berücksichtigen, um auf der "Regenbogen" -Farbkarte mit this module zu malen. Hier ist ein Beispiel mit zufälligen Testdaten. Ich male Farben in diesem Beispiel mit Mitteln.

import matplotlib.pyplot as plt 
import matplotlib.cm as cm 
import numpy as np 

# Random test data 
test_data = [np.random.normal(mean, 1, 100) for mean in range(50)] 

fig, axes = plt.subplots(figsize=(12, 16)) 

# Horizontal box plot 
bplot = axes.boxplot(test_data, 
        vert=False, # vertical box aligmnent 
        patch_artist=True) # fill with color 

# Fill with colors 
cmap = cm.ScalarMappable(cmap='rainbow') 
test_mean = [np.mean(x) for x in test_data] 
for patch, color in zip(bplot['boxes'], cmap.to_rgba(test_mean)): 
    patch.set_facecolor(color) 

plt.show() 

enter image description here

+0

Oh, Sie schlugen mich auf den Stempel! Wirklich nette Herangehensweise, ich würde nicht daran denken 'np.mean (x)' als Parameter zu verwenden, clever! (+1) –

+0

@ ViníciusAguiar Danke. OP hat nicht angegeben, wie die Farbe abgebildet wird. Also würde ich sagen, deine Antwort ist auch nett. –

3

können Sie die cmap Eigenschaft tatsächlich eine Funktion sein, die Werte zwischen 0 und 1, der Annahme und nennen es „Normalisierung“ Ihre Daten. Mit matplotlib Beispiel auf Boxplots:

import matplotlib.pyplot as plt 
import numpy as np 

# Random test data 
np.random.seed(123) 
all_data = [np.random.normal(0, 5, 100) for std in range(1, 21)] 

fig, ax = plt.subplots(nrows=1, figsize=(9, 4)) 

# rectangular box plot 
bplot = ax.boxplot(all_data, 0, '', 0, patch_artist=True) 

cm = plt.cm.get_cmap('rainbow') 
colors = [cm(val/len(all_data)) for val in range(len(all_data))] 

for patch, color in zip(bplot['boxes'], colors): 
    patch.set_facecolor(color) 

plt.show() 

+0

ich bekomme nur lila Farbe für diesen Code @ ViníciusAguiar –

+0

Das ist komisch, es sollte funktionieren, was bekommen Sie vom Drucken 'Farben'? –

Verwandte Themen