2016-10-05 69 views
0

使用Python和Matplotlib,我想明確地控制哪些Y標誌顯示在Y軸:指定什麼Y標誌使用

def plot_sample_top(sample, chrom): 
    ax = fig.add_subplot(23, 1, subplot_coord[sample]) 
    ax.set_xlim([1, chrom_lengths[chrom]]) 
    ax.set_ylim([-10, 10]) 

    # scatter 
    ax.scatter(df_strain['POS'], df_strain["SD"], color='black', label="< 1 SD") 

我需要Y軸的範圍是-10至10,我只想將數字-10,0和10顯示爲Y軸標籤。用當前代碼顯示-10,-5,0,5,10,並擠在一起

回答

0

您將要使用axes.set_yticks和/或axes.set_yticklabels

要設置刻度線和標籤爲您指定,你會怎麼做:

ax.set_yticks([-10, 0, 10]) 

這將消除所有其他的蜱。如果您希望蜱留下,但標籤消失(例如,您想在-9,-8,-7等網格線上但不想使用標籤),則可以這樣做:

ax.set_yticks(range(-10,11)) # to make sure they are what you think they are 
labels = [-10,'','','','','','','','','',0,'','','','','','','','','',10] 
ax.set_yticklabels(labels) 

如果您想使標籤更加優雅一點,您可以這樣做:

labels = [y if y in [-10,0,10] else '' for y in xrange(-10,11)]