2
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()

With the code I wrote above I am unable to plot the xticks as string/floating point value for each bar. what am I doing wrong?

6
  • you need to use set_xticklabels Commented Oct 16, 2014 at 10:32
  • 2
    I did try ax.set_xticklabels(label) but that does not seem to work. Commented Oct 16, 2014 at 10:36
  • instead of "that does not seem to work", you need to show error message you have got Commented Oct 16, 2014 at 10:37
  • there is no error, the xticks are not plotted, that's all. Commented Oct 16, 2014 at 10:39
  • 3
    well, it seems that you are setting them off, in bottom='off', top='off', ... Commented Oct 16, 2014 at 10:43

1 Answer 1

8

ax.set_xticklabels(label) should actually work. What you are missing is to establish the x-ticks with theax.set_xticks(float) command

Here's an example:

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

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.