2014-10-16 80 views
0
def plot_freq_error(diff,file,possible_frequency): 
    for foo in range(0, len(diff)): 
     x = [diff[foo]] 
     name = comp 
     color = ['0.1', '0.2', '0.3','0.4','0.5','0.6','0.7','0.8', '0.9','0.95','1.0'] 
     label = ['0.8GHz','1.0GHz','1.2GHz','1.4GHz','1.6GHz','1.8GHz','2.0GHz','2.2GHz','2.4GHz'] 
     y = zip(*x) 
     pos = np.arange(len(x)) 
     width = 1./(1 + len(x)) 

     fig,ax = plt.subplots() 
     matplotlib.rcParams.update({'font.size': 22}) 
     for idx, (serie, color,label) in enumerate(zip(y, color,label)): 
      ax.bar(pos + idx * width, serie, width, color=color,label=label) 

     plt.tick_params(\ 
      axis='x',   # changes apply to the x-axis 
      which='both',  # both major and minor ticks are affected 
      bottom='off',  # ticks along the bottom edge are off 
      top='off',   # ticks along the top edge are off 
      labelbottom='off') # labels along the bottom edge are off 
     plt.tick_params(axis='both', which='major', labelsize=10) 
     plt.tick_params(axis='both', which='minor', labelsize=8) 
     plt.ylabel(name[foo],fontsize=40) 
     #ax.legend(prop={'size':5}) 
     plt.xticks(label) 
     plt.gray() 
     plt.show() 
     plt.clf() 

隨着我上面寫的代碼,我無法將xticks繪製爲每個小節的字符串/浮點值。我究竟做錯了什麼?Matplotlib字符串xticks

+0

你需要使用['set_xticklabels'(HTTP:// matplotlib。 org/api/axes_api.html#matplotlib.axes.Axes.set_xticklabels) – 2014-10-16 10:32:46

+1

我嘗試過'ax.set_xticklabels(label)',但這似乎不起作用。 – user3808088 2014-10-16 10:36:30

+0

而不是「似乎不工作」,你需要顯示錯誤信息你有 – 2014-10-16 10:37:52

回答

1

ax.set_xticklabels(label)實際上應該工作。你所缺少的是與ax.set_xticks(float)命令

這裏建立的X-蜱是一個例子:

x = np.arange(2,10,2) 
y = x.copy() 
x_ticks_labels = ['jan','feb','mar','apr','may'] 

fig, ax = plt.subplots(1,1) 
ax.plot(x,y) 

# Set number of ticks for x-axis 
ax.set_xticks(x) 
# Set ticks labels for x-axis 
ax.set_xticklabels(x_ticks_labels, rotation='vertical', fontsize=18) 

enter image description here