2012-08-14 95 views
3

我想創建一個類似的情節,但沒有彩色squres下面的字母:Matplotlib:顏色條不工作,因爲它應該?

enter image description here

到目前爲止,我已經能夠創建:

enter image description here

我到目前爲止我很滿意,但我的問題是顏色欄。如果你看看我的身材上的最後一個位置(位置614)。彩色地圖已被繪製在這個位置上,並且顏色條在它旁邊。

如何只繪製顏色條並將其移動到一邊,如果圖中的顏色條較大且清晰可見。

我的代碼是:

def plot_solv_acc_graph(self): 
    ''' 
    PLots the average data from the make_solv_access_table function 
    ''' 

import math 
import numpy as np 
from pylab import * 
from matplotlib import mpl 
import matplotlib.pyplot as plt 


aa_key = {'ARG':'R', 'HIS':'H', 'LYS':'K', 'ASP':'D', 'GLU':'E', 'SER':'S', 'THR':'T', 'ASN':'N', 'GLN':'Q', 'CYS':'C', 'SEC':'C', 'GLY':'G', 'PRO':'P', 'ALA':'A', 'VAL':'V', 'ILE':'I', 'LEU':'L', 'MET':'M', 'PHE':'F', 'TYR':'Y', 'TRP':'W'} 


avg = [93.89, 69.34, 62.14, 33.65, 59.14, 41.73, 22.27, 0.81, 43.57, 5.12, 0.06, 32.58, 18.07, 77.43, 38.97, 83.38, 31.26, 75.33, 68.95, 142.75, 19.71, 0.16, 57.19, 59.74, 0.2, 27.25, 125.09, 116.5, 7.9, 7.49, 131.04, 64.21, 18.45, 62.13, 51.68, 96.93, 80.49, 35.64, 153.67, 28.97, 117.85, 67.19, 4.77, 86.98, 40.65, 56.09, 28.04, 97.77, 25.68, 0.0, 21.36, 47.02, 0.0, 37.21, 66.44, 4.63, 5.51, 43.05, 42.99, 125.41, 100.06, 91.02, 59.16, 32.02, 63.1, 0.58, 5.66, 54.43, 40.13, 67.42, 74.4, 76.45, 105.18, 68.41, 75.86, 74.01, 103.7, 117.79, 90.08, 139.55, 89.3, 136.44, 104.58, 105.68, 42.46, 91.42, 35.22, 93.86, 48.37, 120.37, 66.23, 50.54, 64.71, 41.54, 71.54, 49.17, 60.97, 85.65, 111.92, 51.99, 53.2, 113.7, 126.62, 38.5, 102.27, 116.62, 60.34, 131.57, 78.68, 46.47, 120.32, 90.04, 122.09, 126.92, 72.98, 65.15, 82.23, 20.38, 50.95, 39.32, 20.96, 75.01, 14.44, 88.34, 1.94, 51.8, 2.06, 90.28, 3.36, 64.76, 31.06, 0.51, 29.15, 87.07, 84.27, 65.24, 128.51, 38.39, 94.71, 16.21, 85.0, 31.2, 59.57, 6.18, 33.06, 33.73, 60.79, 61.36, 95.3, 197.35, 26.78, 112.83, 64.85, 131.5, 97.56, 94.93, 79.31, 95.74, 60.12, 89.47, 19.11, 87.26, 16.72, 110.99, 1.96, 33.8, 18.2, 21.86, 13.52, 24.27, 62.86, 31.47, 39.23, 80.43, 38.0, 85.39, 48.59, 136.98, 35.9, 45.6, 4.45, 17.14, 70.42, 34.51, 124.57, 116.16, 66.84, 23.42, 109.71, 58.46, 6.64, 11.81, 0.2, 43.98, 0.2, 15.75, 2.59, 47.25, 11.7, 30.86, 81.7, 30.13, 104.47, 69.54, 7.08, 67.92, 56.72, 63.09, 47.24, 45.87, 23.58, 0.05, 41.5, 3.43, 72.93, 5.42, 60.21, 1.23, 20.09, 1.81, 39.74, 47.41, 0.08, 3.54, 67.77, 19.85, 26.79, 124.72, 33.09, 78.66, 0.99, 55.68, 13.74, 16.07, 119.38, 93.24, 64.98, 43.75, 107.65, 14.95, 69.54, 3.25, 68.41, 56.43, 16.03, 4.43, 61.51, 24.86, 46.78, 43.31, 87.59, 24.02, 108.74, 15.55, 128.87, 35.05, 31.09, 3.57, 6.79, 40.17, 23.66, 116.78, 131.23, 81.16, 58.18, 3.68, 13.18, 0.0, 28.06, 0.0, 25.68, 3.37, 51.95, 1.15, 24.84, 4.6, 22.33, 33.47, 108.62, 16.1, 49.53, 135.2, 71.43, 5.79, 15.91, 48.61, 13.73, 9.4, 87.11, 63.19, 7.91, 21.25, 94.15, 45.86, 26.36, 80.05, 105.57, 52.3, 51.13, 56.83, 113.51, 92.92, 67.0, 148.45, 35.13, 114.23, 108.02, 94.94, 68.44, 62.22, 31.15, 60.04, 38.47, 22.3, 0.78, 39.35, 4.7, 0.09, 28.1, 17.58, 73.04, 37.55, 83.03, 31.78, 75.43, 69.08, 142.08, 19.87, 0.12, 57.8, 56.07, 0.33, 27.34, 124.44, 98.74, 6.57, 7.63, 126.51, 54.26, 16.13, 62.16, 51.03, 96.26, 78.31, 33.71, 142.46, 25.05, 101.93, 59.35, 5.0, 82.65, 36.26, 52.16, 27.37, 96.5, 24.5, 0.0, 21.25, 46.08, 0.0, 37.11, 62.57, 4.14, 5.19, 40.52, 38.78, 122.3, 97.2, 87.08, 57.43, 31.35, 61.98, 0.47, 5.45, 52.48, 41.73, 61.9, 73.38, 76.32, 104.43, 69.92, 78.78, 76.66, 107.05, 121.75, 91.06, 137.56, 91.2, 135.56, 107.81, 103.62, 41.7, 91.29, 35.24, 95.06, 48.72, 120.38, 65.02, 51.42, 63.83, 42.03, 72.09, 46.49, 58.56, 88.6, 111.84, 51.98, 53.78, 113.33, 126.69, 39.08, 101.86, 118.26, 59.34, 131.83, 79.09, 46.05, 119.72, 88.5, 121.97, 124.3, 72.72, 64.42, 83.82, 21.05, 52.81, 39.94, 21.72, 74.56, 12.92, 83.91, 1.73, 50.29, 1.86, 90.79, 3.81, 63.99, 31.36, 0.57, 29.63, 84.77, 89.53, 63.56, 125.84, 35.8, 92.01, 15.26, 83.0, 30.76, 59.25, 6.29, 34.43, 33.28, 62.53, 61.09, 95.55, 196.45, 27.62, 113.44, 63.2, 129.38, 94.13, 92.39, 78.32, 91.58, 60.28, 89.43, 19.21, 88.07, 16.92, 114.43, 1.85, 41.76, 18.49, 24.06, 14.87, 26.1, 62.6, 33.32, 47.49, 87.78, 43.66, 89.01, 50.82, 137.19, 36.07, 45.04, 4.74, 17.27, 70.76, 34.06, 122.94, 115.74, 67.75, 22.31, 109.71, 58.98, 6.2, 11.94, 0.17, 44.87, 0.2, 13.79, 2.98, 45.03, 10.99, 29.79, 79.91, 29.46, 100.54, 66.28, 6.74, 68.25, 56.62, 70.73, 50.56, 58.69, 26.22, 0.2, 42.1, 2.29, 65.71, 5.29, 54.8, 0.74, 17.54, 1.47, 28.1, 38.62, 0.3, 4.99, 67.47, 18.73, 25.92, 125.97, 26.34, 60.35, 0.94, 52.67, 13.45, 15.84, 117.19, 92.53, 62.5, 43.79, 106.85, 16.62, 71.9, 2.93, 68.08, 71.72, 10.62, 4.19, 46.87, 24.12, 47.09, 42.94, 92.39, 26.66, 109.61, 13.34, 129.23, 34.47, 31.0, 3.22, 7.69, 42.03, 28.05, 149.01, 156.76, 92.83, 57.73, 3.86, 14.9, 0.0, 29.23, 0.03, 25.92, 3.87, 45.65, 1.09, 20.81, 3.66, 27.06, 28.97, 94.28, 12.82, 63.89, 134.81, 81.96, 10.38, 17.27, 47.6, 23.26, 11.64, 94.27, 71.8, 2.46, 33.86, 93.88, 44.6, 20.61, 80.47, 97.13, 47.26, 50.87, 56.86, 126.64, 84.4, 57.84, 167.2, 37.38, 118.34, 106.89] 
aa = ['ALA', 'SER', 'ALA', 'LEU', 'LYS', 'ASP', 'TYR', 'TYR', 'ALA', 'ILE', 'MET', 'GLY', 'VAL', 'LYS', 'PRO', 'THR', 'ASP', 'ASP', 'LEU', 'LYS', 'THR', 'ILE', 'LYS', 'THR', 'ALA', 'TYR', 'ARG', 'ARG', 'LEU', 'ALA', 'ARG', 'LYS', 'TYR', 'HIS', 'PRO', 'ASP', 'VAL', 'SER', 'LYS', 'GLU', 'PRO', 'ASP', 'ALA', 'GLU', 'ALA', 'ARG', 'PHE', 'LYS', 'GLU', 'VAL', 'ALA', 'GLU', 'ALA', 'TRP', 'GLU', 'VAL', 'LEU', 'SER', 'ASP', 'GLU', 'GLN', 'ARG', 'ARG', 'ALA', 'GLU', 'TYR', 'ASP', 'GLN', 'MET', 'TRP', 'GLN', 'HIS', 'ARG', 'ASN', 'ASP', 'PRO', 'GLN', 'PHE', 'ASN', 'ARG', 'GLN', 'PHE', 'HIS', 'HIS', 'GLY', 'ASP', 'GLY', 'GLN', 'SER', 'PHE', 'ASN', 'ALA', 'GLU', 'ASP', 'PHE', 'ASP', 'ASP', 'ILE', 'PHE', 'SER', 'SER', 'ILE', 'PHE', 'GLY', 'GLN', 'HIS', 'ALA', 'ARG', 'GLN', 'SER', 'ARG', 'GLN', 'ARG', 'PRO', 'ALA', 'THR', 'ARG', 'GLY', 'HIS', 'ASP', 'ILE', 'GLU', 'ILE', 'GLU', 'VAL', 'ALA', 'VAL', 'PHE', 'LEU', 'GLU', 'GLU', 'THR', 'LEU', 'THR', 'GLU', 'HIS', 'LYS', 'ARG', 'THR', 'ILE', 'SER', 'TYR', 'ASN', 'LEU', 'PRO', 'VAL', 'TYR', 'ASN', 'ALA', 'PHE', 'GLY', 'MET', 'ILE', 'GLU', 'GLN', 'GLU', 'ILE', 'PRO', 'LYS', 'THR', 'LEU', 'ASN', 'VAL', 'LYS', 'ILE', 'PRO', 'ALA', 'GLY', 'VAL', 'GLY', 'ASN', 'GLY', 'GLN', 'ARG', 'ILE', 'ARG', 'LEU', 'LYS', 'GLY', 'GLN', 'GLY', 'THR', 'PRO', 'GLY', 'GLU', 'ASN', 'GLY', 'GLY', 'PRO', 'ASN', 'GLY', 'ASP', 'LEU', 'TRP', 'LEU', 'VAL', 'ILE', 'HIS', 'ILE', 'ALA', 'PRO', 'HIS', 'PRO', 'LEU', 'PHE', 'ASP', 'ILE', 'VAL', 'GLY', 'GLN', 'ASP', 'LEU', 'GLU', 'ILE', 'VAL', 'VAL', 'PRO', 'VAL', 'SER', 'PRO', 'TRP', 'GLU', 'ALA', 'ALA', 'LEU', 'GLY', 'ALA', 'LYS', 'VAL', 'THR', 'VAL', 'PRO', 'THR', 'LEU', 'LYS', 'GLU', 'SER', 'ILE', 'LEU', 'LEU', 'THR', 'ILE', 'PRO', 'PRO', 'GLY', 'SER', 'GLN', 'ALA', 'GLY', 'GLN', 'ARG', 'LEU', 'ARG', 'VAL', 'LYS', 'GLY', 'LYS', 'GLY', 'LEU', 'VAL', 'SER', 'LYS', 'LYS', 'GLN', 'THR', 'GLY', 'ASP', 'LEU', 'TYR', 'ALA', 'VAL', 'LEU', 'LYS', 'ILE', 'VAL', 'MET', 'PRO', 'PRO', 'LYS', 'PRO', 'ASP', 'GLU', 'ASN', 'THR', 'ALA', 'ALA', 'LEU', 'TRP', 'GLN', 'GLN', 'LEU', 'ALA', 'ASP', 'ALA', 'GLN', 'SER', 'SER', 'PHE', 'ASP', 'PRO', 'ARG', 'LYS', 'ASP', 'TRP', 'GLY', 'LYS', 'ALA', 'ALA', 'SER', 'ALA', 'LEU', 'LYS', 'ASP', 'TYR', 'TYR', 'ALA', 'ILE', 'MET', 'GLY', 'VAL', 'LYS', 'PRO', 'THR', 'ASP', 'ASP', 'LEU', 'LYS', 'THR', 'ILE', 'LYS', 'THR', 'ALA', 'TYR', 'ARG', 'ARG', 'LEU', 'ALA', 'ARG', 'LYS', 'TYR', 'HIS', 'PRO', 'ASP', 'VAL', 'SER', 'LYS', 'GLU', 'PRO', 'ASP', 'ALA', 'GLU', 'ALA', 'ARG', 'PHE', 'LYS', 'GLU', 'VAL', 'ALA', 'GLU', 'ALA', 'TRP', 'GLU', 'VAL', 'LEU', 'SER', 'ASP', 'GLU', 'GLN', 'ARG', 'ARG', 'ALA', 'GLU', 'TYR', 'ASP', 'GLN', 'MET', 'TRP', 'GLN', 'HIS', 'ARG', 'ASN', 'ASP', 'PRO', 'GLN', 'PHE', 'ASN', 'ARG', 'GLN', 'PHE', 'HIS', 'HIS', 'GLY', 'ASP', 'GLY', 'GLN', 'SER', 'PHE', 'ASN', 'ALA', 'GLU', 'ASP', 'PHE', 'ASP', 'ASP', 'ILE', 'PHE', 'SER', 'SER', 'ILE', 'PHE', 'GLY', 'GLN', 'HIS', 'ALA', 'ARG', 'GLN', 'SER', 'ARG', 'GLN', 'ARG', 'PRO', 'ALA', 'THR', 'ARG', 'GLY', 'HIS', 'ASP', 'ILE', 'GLU', 'ILE', 'GLU', 'VAL', 'ALA', 'VAL', 'PHE', 'LEU', 'GLU', 'GLU', 'THR', 'LEU', 'THR', 'GLU', 'HIS', 'LYS', 'ARG', 'THR', 'ILE', 'SER', 'TYR', 'ASN', 'LEU', 'PRO', 'VAL', 'TYR', 'ASN', 'ALA', 'PHE', 'GLY', 'MET', 'ILE', 'GLU', 'GLN', 'GLU', 'ILE', 'PRO', 'LYS', 'THR', 'LEU', 'ASN', 'VAL', 'LYS', 'ILE', 'PRO', 'ALA', 'GLY', 'VAL', 'GLY', 'ASN', 'GLY', 'GLN', 'ARG', 'ILE', 'ARG', 'LEU', 'LYS', 'GLY', 'GLN', 'GLY', 'THR', 'PRO', 'GLY', 'GLU', 'ASN', 'GLY', 'GLY', 'PRO', 'ASN', 'GLY', 'ASP', 'LEU', 'TRP', 'LEU', 'VAL', 'ILE', 'HIS', 'ILE', 'ALA', 'PRO', 'HIS', 'PRO', 'LEU', 'PHE', 'ASP', 'ILE', 'VAL', 'GLY', 'GLN', 'ASP', 'LEU', 'GLU', 'ILE', 'VAL', 'VAL', 'PRO', 'VAL', 'SER', 'PRO', 'TRP', 'GLU', 'ALA', 'ALA', 'LEU', 'GLY', 'ALA', 'LYS', 'VAL', 'THR', 'VAL', 'PRO', 'THR', 'LEU', 'LYS', 'GLU', 'SER', 'ILE', 'LEU', 'LEU', 'THR', 'ILE', 'PRO', 'PRO', 'GLY', 'SER', 'GLN', 'ALA', 'GLY', 'GLN', 'ARG', 'LEU', 'ARG', 'VAL', 'LYS', 'GLY', 'LYS', 'GLY', 'LEU', 'VAL', 'SER', 'LYS', 'LYS', 'GLN', 'THR', 'GLY', 'ASP', 'LEU', 'TYR', 'ALA', 'VAL', 'LEU', 'LYS', 'ILE', 'VAL', 'MET', 'PRO', 'PRO', 'LYS', 'PRO', 'ASP', 'GLU', 'ASN', 'THR', 'ALA', 'ALA', 'LEU', 'TRP', 'GLN', 'GLN', 'LEU', 'ALA', 'ASP', 'ALA', 'GLN', 'SER', 'SER', 'PHE', 'ASP', 'PRO', 'ARG', 'LYS', 'ASP', 'TRP', 'GLY', 'LYS', 'ALA'] 
colours = ['#FFFFFF','#CCFFFF','#99FFFF','#00CCFF','#0099FF','#0066FF','#0033FF','#0000CC','#000066'] 

high_val = max(avg) 
segments = high_val/9.0 
divider = segments 
boundaries = [] 

for z in xrange(9): 
    boundaries.append(divider) 
    divider = divider + segments 

rows = math.ceil(len(aa)/40.0) 

list_numbers = [i for i in range(1, len(aa), 10)] 

fig = plt.figure(figsize=(20,20),facecolor='white') 
fig.subplots_adjust(top=0.99, bottom=0.40, left=0.01, right=0.45, wspace = 0.0, hspace = 2) 

its = 0 
for i in xrange(len(aa)): 
    for bound in boundaries: 
     if avg[i] <= bound: 
      ax = plt.subplot(rows, 40, i+1, axisbg=colours[its]) 
      if colours[its] == '#000066': 
       ax.text(0.5, 0.5, "%s" % aa_key[aa[i]], ha="center", va="center", size=15, color='white') 
      else: 
       ax.text(0.5, 0.5, "%s" % aa_key[aa[i]], ha="center", va="center", size=15, color='black') 
     else: 
      its +=1 

    for spine in ax.spines.itervalues(): 
     spine.set_visible(False) 

    ax.axes.get_xaxis().set_ticks([]) 
    ax.axes.get_yaxis().set_ticks([]) 

    if i+1 in list_numbers: 
     ax.set_xlabel(i+1) 
     ax.xaxis.set_label_position('top') 

    its = 0 


a = np.linspace(0, high_val, 9) 
a = np.vstack((a,a)) 
cmap = mpl.colors.ListedColormap(['#FFFFFF','#CCFFFF','#99FFFF','#00CCFF','#0099FF','#0066FF','#0033FF','#0000CC','#000066']) 
im = imshow(a, aspect='auto', cmap=plt.get_cmap(cmap), origin='lower')   
colorbar() 

plt.show() 

回答

3

而不是創造這麼多的軸,您可以添加矩形到一個軸,這裏是代碼:

import math 
import numpy as np 
from pylab import * 
from matplotlib import mpl 
import matplotlib.pyplot as plt 


aa_key = {'ARG':'R', 'HIS':'H', 'LYS':'K', 'ASP':'D', 'GLU':'E', 'SER':'S', 'THR':'T', 'ASN':'N', 'GLN':'Q', 'CYS':'C', 'SEC':'C', 'GLY':'G', 'PRO':'P', 'ALA':'A', 'VAL':'V', 'ILE':'I', 'LEU':'L', 'MET':'M', 'PHE':'F', 'TYR':'Y', 'TRP':'W'} 


avg = [93.89, 69.34, 62.14, 33.65, 59.14, 41.73, 22.27, 0.81, 43.57, 5.12, 0.06, 32.58, 18.07, 77.43, 38.97, 83.38, 31.26, 75.33, 68.95, 142.75, 19.71, 0.16, 57.19, 59.74, 0.2, 27.25, 125.09, 116.5, 7.9, 7.49, 131.04, 64.21, 18.45, 62.13, 51.68, 96.93, 80.49, 35.64, 153.67, 28.97, 117.85, 67.19, 4.77, 86.98, 40.65, 56.09, 28.04, 97.77, 25.68, 0.0, 21.36, 47.02, 0.0, 37.21, 66.44, 4.63, 5.51, 43.05, 42.99, 125.41, 100.06, 91.02, 59.16, 32.02, 63.1, 0.58, 5.66, 54.43, 40.13, 67.42, 74.4, 76.45, 105.18, 68.41, 75.86, 74.01, 103.7, 117.79, 90.08, 139.55, 89.3, 136.44, 104.58, 105.68, 42.46, 91.42, 35.22, 93.86, 48.37, 120.37, 66.23, 50.54, 64.71, 41.54, 71.54, 49.17, 60.97, 85.65, 111.92, 51.99, 53.2, 113.7, 126.62, 38.5, 102.27, 116.62, 60.34, 131.57, 78.68, 46.47, 120.32, 90.04, 122.09, 126.92, 72.98, 65.15, 82.23, 20.38, 50.95, 39.32, 20.96, 75.01, 14.44, 88.34, 1.94, 51.8, 2.06, 90.28, 3.36, 64.76, 31.06, 0.51, 29.15, 87.07, 84.27, 65.24, 128.51, 38.39, 94.71, 16.21, 85.0, 31.2, 59.57, 6.18, 33.06, 33.73, 60.79, 61.36, 95.3, 197.35, 26.78, 112.83, 64.85, 131.5, 97.56, 94.93, 79.31, 95.74, 60.12, 89.47, 19.11, 87.26, 16.72, 110.99, 1.96, 33.8, 18.2, 21.86, 13.52, 24.27, 62.86, 31.47, 39.23, 80.43, 38.0, 85.39, 48.59, 136.98, 35.9, 45.6, 4.45, 17.14, 70.42, 34.51, 124.57, 116.16, 66.84, 23.42, 109.71, 58.46, 6.64, 11.81, 0.2, 43.98, 0.2, 15.75, 2.59, 47.25, 11.7, 30.86, 81.7, 30.13, 104.47, 69.54, 7.08, 67.92, 56.72, 63.09, 47.24, 45.87, 23.58, 0.05, 41.5, 3.43, 72.93, 5.42, 60.21, 1.23, 20.09, 1.81, 39.74, 47.41, 0.08, 3.54, 67.77, 19.85, 26.79, 124.72, 33.09, 78.66, 0.99, 55.68, 13.74, 16.07, 119.38, 93.24, 64.98, 43.75, 107.65, 14.95, 69.54, 3.25, 68.41, 56.43, 16.03, 4.43, 61.51, 24.86, 46.78, 43.31, 87.59, 24.02, 108.74, 15.55, 128.87, 35.05, 31.09, 3.57, 6.79, 40.17, 23.66, 116.78, 131.23, 81.16, 58.18, 3.68, 13.18, 0.0, 28.06, 0.0, 25.68, 3.37, 51.95, 1.15, 24.84, 4.6, 22.33, 33.47, 108.62, 16.1, 49.53, 135.2, 71.43, 5.79, 15.91, 48.61, 13.73, 9.4, 87.11, 63.19, 7.91, 21.25, 94.15, 45.86, 26.36, 80.05, 105.57, 52.3, 51.13, 56.83, 113.51, 92.92, 67.0, 148.45, 35.13, 114.23, 108.02, 94.94, 68.44, 62.22, 31.15, 60.04, 38.47, 22.3, 0.78, 39.35, 4.7, 0.09, 28.1, 17.58, 73.04, 37.55, 83.03, 31.78, 75.43, 69.08, 142.08, 19.87, 0.12, 57.8, 56.07, 0.33, 27.34, 124.44, 98.74, 6.57, 7.63, 126.51, 54.26, 16.13, 62.16, 51.03, 96.26, 78.31, 33.71, 142.46, 25.05, 101.93, 59.35, 5.0, 82.65, 36.26, 52.16, 27.37, 96.5, 24.5, 0.0, 21.25, 46.08, 0.0, 37.11, 62.57, 4.14, 5.19, 40.52, 38.78, 122.3, 97.2, 87.08, 57.43, 31.35, 61.98, 0.47, 5.45, 52.48, 41.73, 61.9, 73.38, 76.32, 104.43, 69.92, 78.78, 76.66, 107.05, 121.75, 91.06, 137.56, 91.2, 135.56, 107.81, 103.62, 41.7, 91.29, 35.24, 95.06, 48.72, 120.38, 65.02, 51.42, 63.83, 42.03, 72.09, 46.49, 58.56, 88.6, 111.84, 51.98, 53.78, 113.33, 126.69, 39.08, 101.86, 118.26, 59.34, 131.83, 79.09, 46.05, 119.72, 88.5, 121.97, 124.3, 72.72, 64.42, 83.82, 21.05, 52.81, 39.94, 21.72, 74.56, 12.92, 83.91, 1.73, 50.29, 1.86, 90.79, 3.81, 63.99, 31.36, 0.57, 29.63, 84.77, 89.53, 63.56, 125.84, 35.8, 92.01, 15.26, 83.0, 30.76, 59.25, 6.29, 34.43, 33.28, 62.53, 61.09, 95.55, 196.45, 27.62, 113.44, 63.2, 129.38, 94.13, 92.39, 78.32, 91.58, 60.28, 89.43, 19.21, 88.07, 16.92, 114.43, 1.85, 41.76, 18.49, 24.06, 14.87, 26.1, 62.6, 33.32, 47.49, 87.78, 43.66, 89.01, 50.82, 137.19, 36.07, 45.04, 4.74, 17.27, 70.76, 34.06, 122.94, 115.74, 67.75, 22.31, 109.71, 58.98, 6.2, 11.94, 0.17, 44.87, 0.2, 13.79, 2.98, 45.03, 10.99, 29.79, 79.91, 29.46, 100.54, 66.28, 6.74, 68.25, 56.62, 70.73, 50.56, 58.69, 26.22, 0.2, 42.1, 2.29, 65.71, 5.29, 54.8, 0.74, 17.54, 1.47, 28.1, 38.62, 0.3, 4.99, 67.47, 18.73, 25.92, 125.97, 26.34, 60.35, 0.94, 52.67, 13.45, 15.84, 117.19, 92.53, 62.5, 43.79, 106.85, 16.62, 71.9, 2.93, 68.08, 71.72, 10.62, 4.19, 46.87, 24.12, 47.09, 42.94, 92.39, 26.66, 109.61, 13.34, 129.23, 34.47, 31.0, 3.22, 7.69, 42.03, 28.05, 149.01, 156.76, 92.83, 57.73, 3.86, 14.9, 0.0, 29.23, 0.03, 25.92, 3.87, 45.65, 1.09, 20.81, 3.66, 27.06, 28.97, 94.28, 12.82, 63.89, 134.81, 81.96, 10.38, 17.27, 47.6, 23.26, 11.64, 94.27, 71.8, 2.46, 33.86, 93.88, 44.6, 20.61, 80.47, 97.13, 47.26, 50.87, 56.86, 126.64, 84.4, 57.84, 167.2, 37.38, 118.34, 106.89] 
aa = ['ALA', 'SER', 'ALA', 'LEU', 'LYS', 'ASP', 'TYR', 'TYR', 'ALA', 'ILE', 'MET', 'GLY', 'VAL', 'LYS', 'PRO', 'THR', 'ASP', 'ASP', 'LEU', 'LYS', 'THR', 'ILE', 'LYS', 'THR', 'ALA', 'TYR', 'ARG', 'ARG', 'LEU', 'ALA', 'ARG', 'LYS', 'TYR', 'HIS', 'PRO', 'ASP', 'VAL', 'SER', 'LYS', 'GLU', 'PRO', 'ASP', 'ALA', 'GLU', 'ALA', 'ARG', 'PHE', 'LYS', 'GLU', 'VAL', 'ALA', 'GLU', 'ALA', 'TRP', 'GLU', 'VAL', 'LEU', 'SER', 'ASP', 'GLU', 'GLN', 'ARG', 'ARG', 'ALA', 'GLU', 'TYR', 'ASP', 'GLN', 'MET', 'TRP', 'GLN', 'HIS', 'ARG', 'ASN', 'ASP', 'PRO', 'GLN', 'PHE', 'ASN', 'ARG', 'GLN', 'PHE', 'HIS', 'HIS', 'GLY', 'ASP', 'GLY', 'GLN', 'SER', 'PHE', 'ASN', 'ALA', 'GLU', 'ASP', 'PHE', 'ASP', 'ASP', 'ILE', 'PHE', 'SER', 'SER', 'ILE', 'PHE', 'GLY', 'GLN', 'HIS', 'ALA', 'ARG', 'GLN', 'SER', 'ARG', 'GLN', 'ARG', 'PRO', 'ALA', 'THR', 'ARG', 'GLY', 'HIS', 'ASP', 'ILE', 'GLU', 'ILE', 'GLU', 'VAL', 'ALA', 'VAL', 'PHE', 'LEU', 'GLU', 'GLU', 'THR', 'LEU', 'THR', 'GLU', 'HIS', 'LYS', 'ARG', 'THR', 'ILE', 'SER', 'TYR', 'ASN', 'LEU', 'PRO', 'VAL', 'TYR', 'ASN', 'ALA', 'PHE', 'GLY', 'MET', 'ILE', 'GLU', 'GLN', 'GLU', 'ILE', 'PRO', 'LYS', 'THR', 'LEU', 'ASN', 'VAL', 'LYS', 'ILE', 'PRO', 'ALA', 'GLY', 'VAL', 'GLY', 'ASN', 'GLY', 'GLN', 'ARG', 'ILE', 'ARG', 'LEU', 'LYS', 'GLY', 'GLN', 'GLY', 'THR', 'PRO', 'GLY', 'GLU', 'ASN', 'GLY', 'GLY', 'PRO', 'ASN', 'GLY', 'ASP', 'LEU', 'TRP', 'LEU', 'VAL', 'ILE', 'HIS', 'ILE', 'ALA', 'PRO', 'HIS', 'PRO', 'LEU', 'PHE', 'ASP', 'ILE', 'VAL', 'GLY', 'GLN', 'ASP', 'LEU', 'GLU', 'ILE', 'VAL', 'VAL', 'PRO', 'VAL', 'SER', 'PRO', 'TRP', 'GLU', 'ALA', 'ALA', 'LEU', 'GLY', 'ALA', 'LYS', 'VAL', 'THR', 'VAL', 'PRO', 'THR', 'LEU', 'LYS', 'GLU', 'SER', 'ILE', 'LEU', 'LEU', 'THR', 'ILE', 'PRO', 'PRO', 'GLY', 'SER', 'GLN', 'ALA', 'GLY', 'GLN', 'ARG', 'LEU', 'ARG', 'VAL', 'LYS', 'GLY', 'LYS', 'GLY', 'LEU', 'VAL', 'SER', 'LYS', 'LYS', 'GLN', 'THR', 'GLY', 'ASP', 'LEU', 'TYR', 'ALA', 'VAL', 'LEU', 'LYS', 'ILE', 'VAL', 'MET', 'PRO', 'PRO', 'LYS', 'PRO', 'ASP', 'GLU', 'ASN', 'THR', 'ALA', 'ALA', 'LEU', 'TRP', 'GLN', 'GLN', 'LEU', 'ALA', 'ASP', 'ALA', 'GLN', 'SER', 'SER', 'PHE', 'ASP', 'PRO', 'ARG', 'LYS', 'ASP', 'TRP', 'GLY', 'LYS', 'ALA', 'ALA', 'SER', 'ALA', 'LEU', 'LYS', 'ASP', 'TYR', 'TYR', 'ALA', 'ILE', 'MET', 'GLY', 'VAL', 'LYS', 'PRO', 'THR', 'ASP', 'ASP', 'LEU', 'LYS', 'THR', 'ILE', 'LYS', 'THR', 'ALA', 'TYR', 'ARG', 'ARG', 'LEU', 'ALA', 'ARG', 'LYS', 'TYR', 'HIS', 'PRO', 'ASP', 'VAL', 'SER', 'LYS', 'GLU', 'PRO', 'ASP', 'ALA', 'GLU', 'ALA', 'ARG', 'PHE', 'LYS', 'GLU', 'VAL', 'ALA', 'GLU', 'ALA', 'TRP', 'GLU', 'VAL', 'LEU', 'SER', 'ASP', 'GLU', 'GLN', 'ARG', 'ARG', 'ALA', 'GLU', 'TYR', 'ASP', 'GLN', 'MET', 'TRP', 'GLN', 'HIS', 'ARG', 'ASN', 'ASP', 'PRO', 'GLN', 'PHE', 'ASN', 'ARG', 'GLN', 'PHE', 'HIS', 'HIS', 'GLY', 'ASP', 'GLY', 'GLN', 'SER', 'PHE', 'ASN', 'ALA', 'GLU', 'ASP', 'PHE', 'ASP', 'ASP', 'ILE', 'PHE', 'SER', 'SER', 'ILE', 'PHE', 'GLY', 'GLN', 'HIS', 'ALA', 'ARG', 'GLN', 'SER', 'ARG', 'GLN', 'ARG', 'PRO', 'ALA', 'THR', 'ARG', 'GLY', 'HIS', 'ASP', 'ILE', 'GLU', 'ILE', 'GLU', 'VAL', 'ALA', 'VAL', 'PHE', 'LEU', 'GLU', 'GLU', 'THR', 'LEU', 'THR', 'GLU', 'HIS', 'LYS', 'ARG', 'THR', 'ILE', 'SER', 'TYR', 'ASN', 'LEU', 'PRO', 'VAL', 'TYR', 'ASN', 'ALA', 'PHE', 'GLY', 'MET', 'ILE', 'GLU', 'GLN', 'GLU', 'ILE', 'PRO', 'LYS', 'THR', 'LEU', 'ASN', 'VAL', 'LYS', 'ILE', 'PRO', 'ALA', 'GLY', 'VAL', 'GLY', 'ASN', 'GLY', 'GLN', 'ARG', 'ILE', 'ARG', 'LEU', 'LYS', 'GLY', 'GLN', 'GLY', 'THR', 'PRO', 'GLY', 'GLU', 'ASN', 'GLY', 'GLY', 'PRO', 'ASN', 'GLY', 'ASP', 'LEU', 'TRP', 'LEU', 'VAL', 'ILE', 'HIS', 'ILE', 'ALA', 'PRO', 'HIS', 'PRO', 'LEU', 'PHE', 'ASP', 'ILE', 'VAL', 'GLY', 'GLN', 'ASP', 'LEU', 'GLU', 'ILE', 'VAL', 'VAL', 'PRO', 'VAL', 'SER', 'PRO', 'TRP', 'GLU', 'ALA', 'ALA', 'LEU', 'GLY', 'ALA', 'LYS', 'VAL', 'THR', 'VAL', 'PRO', 'THR', 'LEU', 'LYS', 'GLU', 'SER', 'ILE', 'LEU', 'LEU', 'THR', 'ILE', 'PRO', 'PRO', 'GLY', 'SER', 'GLN', 'ALA', 'GLY', 'GLN', 'ARG', 'LEU', 'ARG', 'VAL', 'LYS', 'GLY', 'LYS', 'GLY', 'LEU', 'VAL', 'SER', 'LYS', 'LYS', 'GLN', 'THR', 'GLY', 'ASP', 'LEU', 'TYR', 'ALA', 'VAL', 'LEU', 'LYS', 'ILE', 'VAL', 'MET', 'PRO', 'PRO', 'LYS', 'PRO', 'ASP', 'GLU', 'ASN', 'THR', 'ALA', 'ALA', 'LEU', 'TRP', 'GLN', 'GLN', 'LEU', 'ALA', 'ASP', 'ALA', 'GLN', 'SER', 'SER', 'PHE', 'ASP', 'PRO', 'ARG', 'LYS', 'ASP', 'TRP', 'GLY', 'LYS', 'ALA'] 
colours = ['#FFFFFF','#CCFFFF','#99FFFF','#00CCFF','#0099FF','#0066FF','#0033FF','#0000CC','#000066'] 

high_val = max(avg) 
boundaries = np.linspace(0, np.max(avg), 10)[1:] 
rows = math.ceil(len(aa)/40.0) 
list_numbers = set(range(1, len(aa), 10)) 

fig = plt.figure(figsize=(10, 10), facecolor="white") 
ax = plt.subplot(111) 
ax.set_axis_off() 
color_index = np.searchsorted(boundaries, avg) 
x, y = 0, -1 
for i in xrange(len(aa)): 
    rect = plt.Rectangle((x, y), 1, 1, facecolor=colours[color_index[i]]) 
    ax.add_artist(rect) 
    ax.text(x+0.5, y+0.5, aa_key[aa[i]], ha="center", va="center", color="white" if color_index[i]==8 else "black") 
    if i+1 in list_numbers: 
     ax.text(x+0.5, y+1.6, "%d" % (i+1), ha="center", va="center") 
    x += 1 
    if x == 40: 
     y -= 3.0 
     x = 0 
ax.set_xlim(-1, 41) 
ax.set_ylim(y-3, 3) 

a = np.linspace(0, high_val, 9) 
a = np.vstack((a,a)) 
cmap = mpl.colors.ListedColormap(['#FFFFFF','#CCFFFF','#99FFFF','#00CCFF','#0099FF','#0066FF','#0033FF','#0000CC','#000066']) 
im = imshow(a, aspect='auto', cmap=plt.get_cmap(cmap), origin='lower')  
im.set_visible(False) 
colorbar() 
plt.show() 

結果是:

enter image description here

+1

而且你可以使用edgecolor ='None'去除矩形周圍的黑色邊框。 – Daan 2012-08-14 11:44:01

相關問題