2016-02-26 28 views
0

給定一組子圖,我想爲它們設置常見的xticks標籤。我知道該怎麼做,當蜱數值:使用Matplotlib爲子圖設置公共xticks(字符串)

cmap = plt.get_cmap('Set3') 
colors = [cmap(i) for i in numpy.linspace(0, 1, 18)] 

data_1 = numpy.random.rand(18, 7) 
data_2 = numpy.random.rand(18, 7) 
data_3 = numpy.random.rand(18, 7) 
data_4 = numpy.random.rand(18, 7) 

y = range(365) 
plt.figure(figsize=(15,7)) 
for i in range(18): 
    plt.plot(y, data_1[i, :], color=colors[i], linewidth=2) 
    plt.plot(y, data_2[i, :], color=colors[i], linewidth=2) 
    plt.plot(y, data_3[i, :], color=colors[i], linewidth=2) 
    plt.plot(y, data_4[i, :], color=colors[i], linewidth=2) 
plt.setp(axes, xticks=range(7)) 
plt.tight_layout() 

enter image description here

不過,現在我想我的蜱標籤是字符串。鑑於此,我想是這樣的:

plt.setp(axes, xticks=(range(12), ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'])) 

但它不工作:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

謝謝。

回答

0

如下圖所示的例子中可以手動設置你的xticks字符串:

x = [1,2,3,4,5,6,7,8,9,10,11,12] 
y = [1,2,3,4,5,6,7,8,9,10,11,12] 

plt.plot(x,y) 
my_xticks = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 

plt.xticks(x, my_xticks) 
plt.show()